dont save uploaded variables with no name, swap outputs
parent
90a63acf40
commit
c7df780c33
|
@ -20,10 +20,11 @@ IN: mime.multipart.tests
|
||||||
|
|
||||||
[ t ] [
|
[ t ] [
|
||||||
mime-test-stream [ upload-separator parse-multipart ] with-input-stream
|
mime-test-stream [ upload-separator parse-multipart ] with-input-stream
|
||||||
drop "\"up.txt\"" swap key?
|
nip "\"up.txt\"" swap key?
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ t ] [
|
[ t ] [
|
||||||
mime-test-stream [ upload-separator parse-multipart ] with-input-stream
|
mime-test-stream [ upload-separator parse-multipart ] with-input-stream
|
||||||
nip "\"text1\"" swap key?
|
drop "\"text1\"" swap key?
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@ ERROR: bad-header bytes ;
|
||||||
: mime-write ( sequence -- )
|
: mime-write ( sequence -- )
|
||||||
>byte-array write ;
|
>byte-array write ;
|
||||||
|
|
||||||
: parse-headers ( string -- sequence )
|
: parse-headers ( string -- hashtable )
|
||||||
string-lines harvest [ parse-header-line ] map ;
|
string-lines harvest [ parse-header-line ] map >hashtable ;
|
||||||
|
|
||||||
ERROR: end-of-stream multipart ;
|
ERROR: end-of-stream multipart ;
|
||||||
|
|
||||||
|
@ -73,11 +73,14 @@ ERROR: end-of-stream multipart ;
|
||||||
"\r\n\r\n" dump-string dup "--\r" = [
|
"\r\n\r\n" dump-string dup "--\r" = [
|
||||||
drop
|
drop
|
||||||
] [
|
] [
|
||||||
parse-headers >hashtable >>header
|
parse-headers >>header
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
|
: empty-name? ( string -- ? )
|
||||||
|
{ "''" "\"\"" "" f } member? ;
|
||||||
|
|
||||||
: save-uploaded-file ( multipart -- )
|
: save-uploaded-file ( multipart -- )
|
||||||
dup filename>> empty? [
|
dup filename>> empty-name? [
|
||||||
drop
|
drop
|
||||||
] [
|
] [
|
||||||
[ [ header>> ] [ filename>> ] [ temp-file>> ] tri mime-file boa ]
|
[ [ header>> ] [ filename>> ] [ temp-file>> ] tri mime-file boa ]
|
||||||
|
@ -86,9 +89,13 @@ ERROR: end-of-stream multipart ;
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: save-form-variable ( multipart -- )
|
: save-form-variable ( multipart -- )
|
||||||
|
dup name>> empty-name? [
|
||||||
|
drop
|
||||||
|
] [
|
||||||
[ [ header>> ] [ name>> ] [ name-content>> ] tri mime-variable boa ]
|
[ [ header>> ] [ name>> ] [ name-content>> ] tri mime-variable boa ]
|
||||||
[ name>> ]
|
[ name>> ]
|
||||||
[ form-variables>> set-at ] tri ;
|
[ form-variables>> set-at ] tri
|
||||||
|
] if ;
|
||||||
|
|
||||||
: dump-mime-file ( multipart filename -- multipart )
|
: dump-mime-file ( multipart filename -- multipart )
|
||||||
binary <file-writer> [
|
binary <file-writer> [
|
||||||
|
@ -145,6 +152,6 @@ ERROR: no-content-disposition multipart ;
|
||||||
read-header
|
read-header
|
||||||
dup end-of-stream?>> [ process-header parse-multipart-loop ] unless ;
|
dup end-of-stream?>> [ process-header parse-multipart-loop ] unless ;
|
||||||
|
|
||||||
: parse-multipart ( sep -- uploaded-files form-variables )
|
: parse-multipart ( separator -- form-variables uploaded-files )
|
||||||
<multipart> parse-beginning parse-multipart-loop
|
<multipart> parse-beginning parse-multipart-loop
|
||||||
[ uploaded-files>> ] [ form-variables>> ] bi ;
|
[ form-variables>> ] [ uploaded-files>> ] bi ;
|
||||||
|
|
Loading…
Reference in New Issue