ggbce Posted November 25, 2005 Share Posted November 25, 2005 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 More sharing options...
Sentinel Posted November 25, 2005 Share Posted November 25, 2005 Tu n'utilises pas les bonnes fonctions, et tu n'as visiblement pas lu la doc. http://fr3.php.net/manual/fr/features.file-upload.php Bonne lecture :) Link to comment Share on other sites More sharing options...
ggbce Posted November 25, 2005 Author Share Posted November 25, 2005 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 More sharing options...
Helfima Posted December 1, 2005 Share Posted December 1, 2005 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 utilise celle ci: move_uploaded Link to comment Share on other sites More sharing options...
ggbce Posted December 1, 2005 Author Share Posted December 1, 2005 c'est plutot ta variable qui va pas, il trouve pas le fichier a ecrireet 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 More sharing options...
Helfima Posted December 1, 2005 Share Posted December 1, 2005 si tu lie bien la description de copy il retourne un message d'erreur pour un fichier de 0octets 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 More sharing options...
ggbce Posted December 7, 2005 Author Share Posted December 7, 2005 si tu lie bien la description de copy il retourne un message d'erreur pour un fichier de 0octets C'est ce que je voulais savoir. Sachant que c'est "normal" car la fonction ne le permet pas c'est résolu. Merci ! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.