ggbce Posté(e) le 25 novembre 2005 Partager Posté(e) le 25 novembre 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 25 novembre 2005 Partager Posté(e) le 25 novembre 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 :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 25 novembre 2005 Auteur Partager Posté(e) le 25 novembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Helfima Posté(e) le 1 décembre 2005 Partager Posté(e) le 1 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 1 décembre 2005 Auteur Partager Posté(e) le 1 décembre 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Helfima Posté(e) le 1 décembre 2005 Partager Posté(e) le 1 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 7 décembre 2005 Auteur Partager Posté(e) le 7 décembre 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.