Jump to content

[RESOLU] Upload fichier en PHP


ggbce

Recommended Posts

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 ?

Link to comment
Share on other 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

Link to comment
Share on other 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.

Link to comment
Share on other 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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...