web-dev-qa-db-fra.com

PHP: Quand les fichiers téléchargés temporaires sont-ils supprimés?

J'utilise le serveur WAMP. Lors du téléchargement du fichier en utilisant PHP je vois

$_FILES[tmp_name] => string 'C:\wamp\tmp\phpD382.tmp' (length=23)

Je vais dans ce dossier et il est vide. Je me suis assuré que mon "afficher les fichiers cachés" est activé depuis mon "option de dossiers" mais je ne le vois pas. Où est-il exactement?

D'ailleurs quand est-il supprimé? Si je ne déplace pas ce fichier? Par exemple, si je télécharge un fichier et que le fichier est téléchargé à mi-chemin et que j'ai décidé de fermer ce navigateur, qu'advient-il du fichier? Quand le serveur sait-il supprimer ce fichier temporaire?

41
user1105430

Dès que votre script PHP termine l'exécution et la ré-sauvegarde à l'emplacement défini

Exemple utilisant PHP simple, pas de framework

http://www.php.net/manual/en/features.file-upload.post-method.php

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>
30
gorelative

Si vous ne faites rien avec eux, ils seront supprimés juste après la fin du script.

8
Hassan Azimi

Si la suppression du fichier n'est pas souhaitée, j'ai trouvé que PHP ne supprimera pas le fichier après exécution si vous le "déplacez" au même emplacement.

move_uploaded_file($temporaryFile, $temporaryFile);
3
Aiphee