J'essaie d'utiliser un script CGI pour accepter et enregistrer un fichier à partir d'un programme qui utilise un HTTP POST pour envoyer un fichier zip.Pourquoi mon fichier .zip est-il corrompu après un téléchargement de fichier HTTP?
Dans la section MIME de l'en-tête HTTP, il ressemble à ceci:
Content-Disposition: form-data; name="el_upload_file_0"; filename="BugReport.zip";\r\n
Content-Type: application/octet-stream\r\n\r\n
Dans mon code CGI J'utilise ceci:
use CGI;
use strict;
my $cgi = CGI->new;
my $upload_file = $cgi->upload('el_upload_file_0');
my $time = time;
my $filename = "/tmp/$time.zip";
open TMP, ">$filename";
binmode TMP;
while (<$upload_file>) {
print TMP $_;
}
close TMP;
Le fichier qui ne cesse de se sauvé est en quelque sorte se corrompre et n'est pas un fichier zip valide. La requête HTTP est envoyée par une application C# et il est possible qu'elle envoie un fichier zip corrompu, mais j'en doute. Y a-t-il quelque chose que je puisse faire pour résoudre d'autres problèmes?