2009-07-12 7 views
0

En PHP J'ai le code suivant qui obtient un fichier soumis par CGI:Comment puis-je convertir un script de téléchargement de fichiers PHP en Perl?

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) 

Le fichier est envoyé comme

Content-Disposition: form-data; name="userfile"; filename="filename" 
Content-Type: application/octet-stream 

Le fichier étant le téléchargement est de type PNG.

Comment accéder aux données que $ _FILES reçoit via perl?

Je peux utiliser CGI.pm avec

$query->upload("filename"); 

Mais comment puis-je obtenir les données qui se trouve dans la partie « Content-Disposition » de l'en-tête?

Répondre

2

Pour citer le doc:

Lorsqu'un fichier est téléchargé le navigateur envoie généralement le long des informations ainsi que dans le format des en-têtes. Les informations incluent généralement le type de contenu MIME. Les futurs navigateurs peuvent également envoyer d'autres informations (telles que la date et la taille de la modification). Pour récupérer cette information, appelez uploadInfo(). Il renvoie une référence à un hachage contenant tous les en-têtes du document.

$filename = param('uploaded_file'); 
    $type = uploadInfo($filename)->{'Content-Type'}; 
    unless ($type eq 'text/html') { 
     die "HTML FILES ONLY!"; 
    } 

Bien que le param() doit retourner le nom de fichier trop (également utilisable comme descripteur de fichier, mais c'est dépréciée et upload() doit être utilisé pour qu'au lieu).

Questions connexes