Aller au contenu

[RESOLU] Upload fichier en PHP


ggbce

Messages recommandés

C'est un problème assez étrange.

Si j'essai d'uploader un fichier en PHP et que ce fichier à une taille de 0 octet (un fichier texte vide...) PHP me retourne un erreur.

Warning: Unable to open 'none' for reading: Aucun fichier ou répertoire de ce type in /serveur/intra/comptab/procedure_upload.php on line 29

Ma ligne 29:

if (copy ($userfile, "/data/$userfile_name")) {
unlink ($userfile);
}

C'est comme s'il ne voyait pas de $userfile à cause que le fichier n'a que 0 octet.... mais je fais des validations avant de me rendre là -> if (empty($userfile_size)) exit; et if (empty($userfile_name)) exit; et ça passe !!!

Pourquoi le $userfile serait vide (et non le name et size) dans le cas d'un fichier à 0 octet dans ce cas et que m'empêche de copier ce fichier ?

Lien vers le commentaire
Partager sur d’autres sites

Sur que j'ai lu la doc, c'est simplement "l'ancienne" méthode php 3.x et 4.x et le script ça fait un bon bout de temps qu'il est en marche... c'est simplement que ce n'était jamais arrivé auparavant d'uploader un fichier de 0 octet.

Je vais quand même essayer de modifier les variables en espérant que ma version 4.1.2 les supporte. Mais si qq'un d'autre à vu ce bug, svp écrivez-moi

Lien vers le commentaire
Partager sur d’autres sites

c'est plutot ta variable qui va pas, il trouve pas le fichier a ecrire

et n'utilise pas copy cette commande n'est pas la bonne surtout pour un script mis en ligne

Ma méthode fonctionne très bien avec n'importe quel fichier, sauf si la taille est à 0 octet. Ce n'est pas trop grave "question sécurité" car cette action est lancé depuis une section sécurisé par mot de passe sous HTTPS (SSL) du site qu'uniquement moi à accès.

J'ai lu la doc sur "move_uploaded_file". Ça peut régler mon problème... mais j'ai trouvé quelque chose d'encore plus intéressant dans les discussions débatus sur ce sujet. La méthode "ftp_put" semble plus efficace et permet d'enregister les fichiers avec le umask, l'usager et groupe que de mon utilisateur FTP en même temps !

Je vais tester ça dès que je peux.

Lien vers le commentaire
Partager sur d’autres sites

si tu lie bien la description de copy il retourne un message d'erreur pour un fichier de 0octets :craint:

le move_uploaded est la fonction concu pour faire ton truc a quoi bon choisir une autre fonction. c'est aussi la moins risquée en cas de problème de script ou de hack, les autres fonctions sont dangereuses enfin c'est mon avis

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...