[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Announcement: http-server-form-posts egg
From: |
Mario Domenech Goulart |
Subject: |
Re: [Chicken-users] Announcement: http-server-form-posts egg |
Date: |
18 Dec 2006 15:48:19 -0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
Hello,
On Tue, 7 Nov 2006 07:30:53 +0100 "felix winkelmann" <address@hidden> wrote:
> On 11/7/06, Moe Aboulkheir <address@hidden> wrote:
> > Looking at the headers alist, it seems the client sent Connection:
> >Keep-alive. I am guessing that you would get the same terminal
> >output ("... kept alive ...") for any kind of HTTP request where the
> >client sends such a header, regardless of whether you are using
> >http-server-form-posts or not.
> >
>
> That's right. As long as the client doesn't send "Connection: close"
> (HTTP/1.1) or does send "Connection: keep-alive" (HTTP/1.0), the
> connection stays open, to allow persistent connections (at least,
> that's my reading of the HTTP protocol). Spiffy doesn't do timeouts
> yet, so it waits either on a connection breakdown or until the client
> times out and closes the connection.
Actually my code was buggy. I forgot to write the response header in
the resource handler code.
Moe: how about providing a fully functional canonical example (based
on yours)? Such like:
(http:add-resource "/form-post"
(lambda (req args)
(let* ((form-fields (request->form-field-alist req))
(file-input (alist-ref "file" form-fields string=?))
(response (string-append
"You uploaded a file called "
(form-field:file-name file-input)
" which has a content type of "
(form-field:content-type file-input)
". The contents of this file are: "
(form-field:body file-input))))
;; save the form contents to a file (assuming a directory
;; /tmp/uploads exists)
(with-output-to-file
(make-pathname "/tmp/uploads" (form-field:file-name file-input))
(lambda () (display (form-field:body file-input))))
;; write the response to the client
(http:write-response-header)
(printf "Content-length: ~A\r\nContent-type: text/html\r\n\r\n~A"
(string-length response) response))))
An example of web page for file uploading:
<html>
<body>
<form method="post" action="/form-post" enctype="multipart/form-data"
<input type="file" name="file">
<input type="submit">
</form>
</body>
</html>
Best wishes,
Mario
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-users] Announcement: http-server-form-posts egg,
Mario Domenech Goulart <=