diff --git a/basis/http/server/server.factor b/basis/http/server/server.factor index 8a5e695a70..c9ec2c7f3e 100755 --- a/basis/http/server/server.factor +++ b/basis/http/server/server.factor @@ -42,7 +42,7 @@ ERROR: no-boundary ; ";" split1 nip "=" split1 nip [ no-boundary ] unless* ; -: read-multipart-data ( request -- form-variables uploaded-files ) +: read-multipart-data ( request -- mime-parts ) [ "content-type" header ] [ "content-length" header string>number ] bi unlimit-input @@ -55,7 +55,7 @@ ERROR: no-boundary ; : parse-content ( request content-type -- post-data ) [ swap ] keep { - { "multipart/form-data" [ read-multipart-data assoc-union >>params ] } + { "multipart/form-data" [ read-multipart-data >>params ] } { "application/x-www-form-urlencoded" [ read-content query>assoc >>params ] } [ drop read-content >>data ] } case ; diff --git a/basis/mime/multipart/multipart-tests.factor b/basis/mime/multipart/multipart-tests.factor index e1bf0483bc..f4156fac9e 100644 --- a/basis/mime/multipart/multipart-tests.factor +++ b/basis/mime/multipart/multipart-tests.factor @@ -20,11 +20,11 @@ IN: mime.multipart.tests [ t ] [ mime-test-stream [ upload-separator parse-multipart ] with-input-stream - nip "\"up.txt\"" swap key? + "\"up.txt\"" swap key? ] unit-test [ t ] [ mime-test-stream [ upload-separator parse-multipart ] with-input-stream - drop "\"text1\"" swap key? + "\"text1\"" swap key? ] unit-test diff --git a/basis/mime/multipart/multipart.factor b/basis/mime/multipart/multipart.factor index 1cea707862..1b5ce74620 100755 --- a/basis/mime/multipart/multipart.factor +++ b/basis/mime/multipart/multipart.factor @@ -16,8 +16,7 @@ header content-disposition bytes filename temp-file name name-content -uploaded-files -form-variables ; +mime-parts ; TUPLE: mime-file headers filename temporary-path ; TUPLE: mime-variable headers key value ; @@ -25,8 +24,7 @@ TUPLE: mime-variable headers key value ; : ( mime-separator -- multipart ) multipart new swap >>mime-separator - H{ } clone >>uploaded-files - H{ } clone >>form-variables ; + H{ } clone >>mime-parts ; ERROR: bad-header bytes ; @@ -87,16 +85,16 @@ ERROR: end-of-stream multipart ; ] [ [ [ header>> ] [ filename>> ] [ temp-file>> ] tri mime-file boa ] [ filename>> ] - [ uploaded-files>> set-at ] tri + [ mime-parts>> set-at ] tri ] if ; -: save-form-variable ( multipart -- ) +: save-mime-part ( multipart -- ) dup name>> empty-name? [ drop ] [ [ [ header>> ] [ name>> ] [ name-content>> ] tri mime-variable boa ] [ name>> ] - [ form-variables>> set-at ] tri + [ mime-parts>> set-at ] tri ] if ; : dump-mime-file ( multipart filename -- multipart ) @@ -124,7 +122,7 @@ ERROR: unknown-content-disposition multipart ; ] [ "name" lookup-disposition [ [ dup mime-separator>> dump-string >>name-content ] dip - >>name dup save-form-variable + >>name dup save-mime-part ] [ unknown-content-disposition ] if* @@ -157,6 +155,6 @@ ERROR: no-content-disposition multipart ; read-header dup end-of-stream?>> [ process-header parse-multipart-loop ] unless ; -: parse-multipart ( separator -- form-variables uploaded-files ) +: parse-multipart ( separator -- mime-parts ) parse-beginning parse-multipart-loop - [ form-variables>> ] [ uploaded-files>> ] bi ; + mime-parts>> ;