2010-07-13 11 views
7

Lorsque j'utilise un formulaire pour télécharger un fichier, il me donne le 'nom' et le 'tmp_name' et vous êtes censé déplacer le fichier de son emplacement temporaire afin de le conserver. Mais combien de temps le fichier reste-t-il sur le serveur avant d'être supprimé? Est-il stocké de façon permanente jusqu'à ce que vous nettoyiez manuellement vos dossiers, ou est-il supprimé une fois que le script PHP a été envoyé? Mon formulaire s'étend sur plusieurs pages et je voulais juste tout traiter à la fin plutôt que de traiter des parties après que chaque page du formulaire soit terminée. Le téléchargement est à l'étape 3 de 5, donc je me demandais si j'avais sauvegardé les informations du fichier téléchargé de l'étape 3, si le fichier serait toujours là quand le formulaire est terminé après l'étape 5.Combien de temps les fichiers téléchargés restent-ils sur votre serveur?

Répondre

5

il est supprimé une fois le script PHP Ainsi, vous pouvez soit faire un téléchargement de fichier comme dernière étape, soit implémenter votre propre garbage collector pour les formulaires non finis.

1

Cela dépend du dossier de téléchargement de tmp. S'il s'agit du répertoire tmp, vous ne pouvez pas vraiment lui faire confiance pour passer à l'étape 5. Si vous contrôlez le dossier de téléchargement, vous pouvez lui faire confiance pour passer à l'étape 5. Vous pouvez définir le chemin de téléchargement avec upload_tmp_dir

+0

Cela me semble bon. La seule chose que je puisse prévoir, c'est qu'il faudra nettoyer de temps en temps si les utilisateurs ne finissent pas le formulaire. – Patrick

+1

-1 Le fichier à tmp_name est détruit à la fin de la requête. Voir la réponse de Marc B – timdev

+0

@timdev, merci pour la correction. –

8

À moins que PHP ne meure d'une horrible mort flamboyante, ou que vous preniez des mesures pour conserver le fichier, il sera automatiquement détruit par PHP à la sortie du script. Si vous avez besoin de le conserver via un formulaire en plusieurs étapes, vous devrez le déplacer dans un endroit sûr, puis en garder trace (champs de formulaire cachés, session, base de données, etc ...) et implémenter votre propre système de nettoyage pour gérer les fichiers orphelins des formulaires abandonnés.