라켓의 파일 업로드 팜플렛 (http://docs.racket-lang.org/web-server/formlets.html)을 사용하여 웹 서버로 파일을 업로드 할 수있게하려고합니다. 문제는 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
대신 파일의 내용의 파일의 이름을 가진 바이트 문자열로 설정됩니다. 파일 내용을 서버의 파일에 기록 할 수 있도록하려면 어떻게해야합니까?
미리 도움 주셔서 감사합니다.