Avatar billede mulemule Nybegynder
23. juni 2005 - 12:47 Der er 6 kommentarer og
1 løsning

http.request syntaks ved fil upload.

Hvis jeg har en side med en fil upload form. Og jeg så læser data i hele http requestet på serveren, hvordan kan jeg så udtrække filen fra dette data.

Selvfølgelig kan jeg godt se syntaksen nogenlunde. Mit problem er at hvis den fil der bliver uploaded indeholder 0D 0A, så ved jeg ikke hvordan man kan se hvor filen ender.

Hvis jeg f.eks. uploader en fil der består af følgende 6 bytes 22 22 0D 0A 22 22 , kaldet "22Linjeskift22.dat". Så kommer htto request data til at se ud som følger:


000000000 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D  ; ----------------
000000016 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 37 64 35  ; -------------7d5
000000032 : 31 37 37 33 32 30 31 36 30 0D 0A 43 6F 6E 74 65  ; 177320160XXConte
000000048 : 6E 74 2D 44 69 73 70 6F 73 69 74 69 6F 6E 3A 20  ; nt-Disposition:
000000064 : 66 6F 72 6D 2D 64 61 74 61 3B 20 6E 61 6D 65 3D  ; form-data; name=
000000080 : 22 5F 5F 56 49 45 57 53 54 41 54 45 22 0D 0A 0D  ; "__VIEWSTATE"XXX
000000096 : 0A 64 44 77 74 4E 6A 55 30 4D 7A 63 79 4D 54 6B  ; XdDwtNjU0MzcyMTk
000000112 : 31 4F 7A 73 2B 58 54 32 54 44 71 78 4C 2F 4E 52  ; 1Ozs+XT2TDqxL/NR
000000128 : 6A 67 48 4A 39 75 55 42 4C 38 57 69 35 36 71 59  ; jgHJ9uUBL8Wi56qY
000000144 : 3D 0D 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D  ; =XX-------------
000000160 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D  ; ----------------
000000176 : 37 64 35 31 37 37 33 32 30 31 36 30 0D 0A 43 6F  ; 7d5177320160XXCo
000000192 : 6E 74 65 6E 74 2D 44 69 73 70 6F 73 69 74 69 6F  ; ntent-Dispositio
000000208 : 6E 3A 20 66 6F 72 6D 2D 64 61 74 61 3B 20 6E 61  ; n: form-data; na
000000224 : 6D 65 3D 22 4D 41 58 5F 46 49 4C 45 5F 53 49 5A  ; me="MAX_FILE_SIZ
000000240 : 45 22 0D 0A 0D 0A 31 30 30 30 0D 0A 2D 2D 2D 2D  ; E"XXXX1000XX----
000000256 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D  ; ----------------
000000272 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 37 64 35 31 37 37 33  ; ---------7d51773
000000288 : 32 30 31 36 30 0D 0A 43 6F 6E 74 65 6E 74 2D 44  ; 20160XXContent-D
000000304 : 69 73 70 6F 73 69 74 69 6F 6E 3A 20 66 6F 72 6D  ; isposition: form
000000320 : 2D 64 61 74 61 3B 20 6E 61 6D 65 3D 22 75 73 65  ; -data; name="use
000000336 : 72 66 69 6C 65 22 3B 20 66 69 6C 65 6E 61 6D 65  ; rfile"; filename
000000352 : 3D 22 43 3A 5C 44 6F 63 75 6D 65 6E 74 73 20 61  ; ="C:\Documents a
000000368 : 6E 64 20 53 65 74 74 69 6E 67 73 5C 65 73 6B 65  ; nd Settings\eske
000000384 : 5C 4D 79 20 44 6F 63 75 6D 65 6E 74 73 5C 4D 79  ; \My Documents\My
000000400 : 20 50 69 63 74 75 72 65 73 5C 75 70 6C 6F 61 64  ;  Pictures\upload
000000416 : 54 65 73 74 5C 32 32 4C 69 6E 6A 65 73 6B 69 66  ; Test\22injeskif
000000432 : 74 32 32 2E 64 61 74 22 0D 0A 43 6F 6E 74 65 6E  ; t22.dat"XXConten
000000448 : 74 2D 54 79 70 65 3A 20 74 65 78 74 2F 70 6C 61  ; t-Type: text/pla
000000464 : 69 6E 0D 0A 0D 0A 22 22 0D 0A 22 22 0D 0A 2D 2D  ; inXXXX""XX""XX--
000000480 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D  ; ----------------
000000496 : 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 37 64 35 31 37  ; -----------7d517
000000512 : 37 33 32 30 31 36 30 2D 2D 0D 0A  ; 7320160--XX


Hvordan kan jeg nu udtrække filen ? , Hvad er syntaksen, hvordan kan man se hvor den starter og specielt hvor den slutter, fordi det kan jeg ikke rigtig se ?

Mvh og tak hvis nogen kan hjælpe.
Avatar billede coderdk Praktikant
23. juni 2005 - 18:00 #1
Hvis du bruger php, som det lader til du gør da du har postet i PHP gruppen, så brug dog is_uploaded_file(), move_uploaded_file() og $_FILES ?
http://dk2.php.net/manual/da/features.file-upload.php
Avatar billede coderdk Praktikant
23. juni 2005 - 18:00 #2
Btw 0D 0A er \r\n altså carriage return efterfulgt af newline
Avatar billede mulemule Nybegynder
29. juni 2005 - 17:06 #3
Jo, men det er jo ikke nok, fordi hvis filen indeholder 0D 0A kan man jo ikke vide om den slutter der eller ej. Der må være et andet system, således at man kan vide præcis hvor filen slutter.
Avatar billede mulemule Nybegynder
29. juni 2005 - 17:07 #4
Jeg bruger ikke specielt php, det er bare et generelt web spm. Jeg kan ikke bruge almindelig upload metode.
Avatar billede coderdk Praktikant
29. juni 2005 - 17:58 #5
Så tror jeg bare du skal studere http://www.faqs.org/rfcs/rfc2388.html :)
Avatar billede mulemule Nybegynder
02. september 2005 - 11:18 #6
Tak for svar. Svaret er vel at man selv skal tæle sig frem til hvor filen ender vha Content-Length HTTP Værdien.
Avatar billede coderdk Praktikant
02. september 2005 - 13:59 #7
Yeps, hvis den sender en :) Anyway, du får et svar, så kan du selv tage dem hvis du vil :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester