hi,
D.h., die Dateien sind bereits auf dem Server.
sind das mehrere dateien? oder nur eine datei?
Es sind soviele Dateichen, wie der Browser schickt.
ich stell mir das so vor. der browser sollte zuerst eine kleine info-datei mit allen file-infos schicken, die man dann abfragen kann bevor die hauptdatei temporär geschrieben wird. wenn bedingung a,b,x..erfüllt ist beginnt das schreiben, wenn nicht wird die infodatei gelöscht und gut is.
ich hab zuwenig ahnung davon wo dateiinfos in einer datei stehen und ob man die auslesen könnte bevor der grosse batzen geschrieben wird. aber genial wär das schon. ein dateiformat, das in den ersten x? 2048 bytes alle infos stehen hat.
"lese die ersten 2048, also alle datei-infos, und wenn passt dann mach alles rauf oder nix".
geht sowas wirklich nicht?
Es ist leider so, dass ordinäre Browser das nicht so machen, wie wir's gerne hätten ;)
Multipart/form-date ist ein Vehikel, da ist alles drin, was der Benutzer in das Formular eingibt und das sind auch die Dateien, die der Browser von der lokalen Festplatte liest. Dieser ganze Klumbatsch geht mit einem Rutsch hoch auf den Server.
Du tust gut daran, Dir das mal mit einem Testscript anzugucken, Tipp: Verwende nicht CGI.pm, das captured STDIN so dass Du nicht mehr rankommst. Zum Testen also einfach mal STDIN auslesen read STDIN, my $buffer, $ENV{CONTENT_LENGTH}
und als plain/text im Browser ausgeben. Damit Du mal ein Gefühl bekommst, wie ein multipart/form-data aussieht ;)
ok, probier ich gleich. wo erfahre ich welche infos ich je dateityp auslesen kann? content-type und content-length, das kanns doch nicht gewesen sein. z.b. die typischen infos einer mp4 oder flv datei wie spiellänge in sekunden, frameanzahl, aspectratio und dergleichen. youtube etc. kanns, oder?
Dieses MPx-Geraffel hat doch dateiintern noch irgendwelche Tags versteckt, wo Du auslesen kannst. CPAN mp3
lernen ist irgendwie schei*e, das wusste ich schon immer :-)
Das wird auch niemals aufhören ;)
Hotti