【发布时间】:2013-12-14 21:49:17
【问题描述】:
我正在尝试使用 Racket 的文件上传表单 (http://docs.racket-lang.org/web-server/formlets.html) 将文件上传到 Web 服务器。问题是 formlet-process 只返回文件名而不是其内容。
这是我目前所拥有的:
#lang web-server/insta
(require web-server/formlets
web-server/http
xml)
; start: request -> doesn't return
(define (start request)
(show-page request))
; show-page: request -> doesn't return
(define (show-page request)
; Response generator
(define (response-generator embed/url)
(response/xexpr
`(html
(head (title "File upload example"))
(body (h1 "File upload example"))
(form
([action ,(embed/url upload-handler)])
,@(formlet-display file-upload-formlet)
(input ([type "submit"] [value "Upload"]))))))
(define (upload-handler request)
(define a-file (formlet-process file-upload-formlet request))
(display a-file)
(response/xexpr
`(html
(head (title "File Uploaded"))
(body (h1 "File uploaded")
(p "Some text here to say file has been uploaded")))))
(send/suspend/dispatch response-generator))
; file-upload-formlet: formlet (binding?)
(define file-upload-formlet
(formlet
(div ,{(required (file-upload)) . => . a-file})
a-file))
在这种情况下,a-file 被设置为带有文件名的字节字符串,而不是文件的内容。如何获取文件的内容以便将其写入服务器上的文件?
提前感谢您的帮助!
【问题讨论】:
标签: file-upload racket