web-dev-qa-db-fra.com

PHP lu à partir du fichier texte téléchargé?

Si je télécharge un fichier texte via un formulaire, est-il possible de sortir son contenu directement à partir de la variable $ _FILES plutôt que de l'enregistrer d'abord sur le serveur? Je sais que c'est un risque pour la sécurité, mais il ne sera exécuté que sur une machine locale.

Tout conseil apprécié.

Merci.

29
Dan

Le fichier est enregistré dans le répertoire temporaire au moment de son téléchargement, mais vous pouvez utiliser $_FILES['uploadedfile']['tmp_name'] pour le lire sans avoir à sauvegarder dans un endroit permanent.

48
Marek Karbarz

Faire

file_get_contents($_FILES['uploadedfile']['tmp_name']); 

est valide, mais vous devez également vérifier que le fichier a été téléchargé via un formulaire et qu'aucune erreur ne s'est produite lors du téléchargement:

if ($_FILES['uploadedfile']['error'] == UPLOAD_ERR_OK               //checks for errors
      && is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) { //checks that file is uploaded
  echo file_get_contents($_FILES['uploadedfile']['tmp_name']); 
}

Un lien utile est http://us2.php.net/manual/en/features.file-upload.php

69
MANCHUCK

Malheureusement non. Du moins pas via la variable $ _FILES. Pardon.

EDIT: Il est toujours enregistré en tant que fichier temporaire dans $ _FILES et vous devrez toujours l'utiliser pour le contenu.

5
Teekin