[plt-scheme] web-server struct binding:file - content-type ?
I've added support for this to the server. The MIME headers are now
part of the binding:file structure. Attached is a sample servlet that
demonstrates.
Jay
#lang scheme
(require web-server/servlet)
(provide (all-defined-out))
(define interface-version 'v1)
(define timeout +inf.0)
(define (start initial-request)
(define req
(send/suspend
(lambda (k-url)
`(html (body (form ([action ,k-url]
[method "post"]
[enctype "multipart/form-data"])
(input ([type "file"]
[name "somename"]))
(input ([type "submit"]))))))))
(define (header->xexpr h)
(match h
[(struct header (field value))
`(li (ul (li "Field: " ,(bytes->string/utf-8 field))
(li "Value: " ,(bytes->string/utf-8 value))))]))
(define (binding->xexpr b)
(match b
[(struct binding:form (field value))
`(li (ul (li "Field: " ,(bytes->string/utf-8 field))
(li "Value: " ,(bytes->string/utf-8 value))))]
[(struct binding:file (field filename headers content))
`(li (ul (li "Field: " ,(bytes->string/utf-8 field))
(li "Name: " ,(bytes->string/utf-8 filename))
(li "Headers: " (ul ,@(map header->xexpr headers)))
(li "Contents: " (pre ,(bytes->string/utf-8 content)))))]))
`(html (body ([bgcolor "white"])
(p "Uploaded:"
(ul ,@(map binding->xexpr (request-bindings/raw req)))))))
On Thu, Nov 6, 2008 at 4:57 PM, YC <yinso.chen at gmail.com> wrote:
> I've tested on Firefox, Lynx, and IE. I suspect other browsers will also
> send it.
>
> Content-Type generally sits right below the Content-Disposition line in the
> MIME parts.
>
> Thanks,
> yc
>
> On Thu, Nov 6, 2008 at 3:41 PM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
>>
>> I'll add it. Do you know if I need to use any particular browser to get it
>> sent?
>>
>> Jay
>>
>
>
--
Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University
http://jay.teammccarthy.org
"The glory of God is Intelligence" - D&C 93