Rechercher : dans
Par :

Upload d'une image

Dernière réponse le 12 mai 2009 à 14:06:10 takolin, le 11 mai 2009 à 19:03:21 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerias beaucoup pouvoir un jour uploader une image sur mon site, mais... Quand j'ai enfin pu mettre un formulaire qui me semble fontionner (ou plutôt un formulaire que j'ai enfin pu comprendre...) Il me vient ce message:
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access upload/renard.jpg in /home/httpd/vhosts/takolin.ch/httpdocs/veledes/upload/upload­.php on line 24
Je ne sais pas quoi faire...
Merci ce votre aide

Configuration: Windows Vista Internet Explorer 7.0

Meilleures réponses pour « Upload d'une image » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Création d'image Système (Ghost) VoirCréer une image (ghost) de partition 1 - Intérêt 2 - Pré-requis 2.1 - Explication 2.2 - Opportunités des partitions 2.3 - Mise à jour des images 2.3.1 - Image incrémentale : intéressant mais dangereux ! 2.3.2 - Image incrémentale et...
Rechercher des images de Noël : père Noël, traîneaux, sapin... VoirRechercher des images de Noël sur Internet Effectuer une recherche rapide d’images de Noël Effectuer une recherche avancée d’images de Noël Rechercher des images de Noël sur une banque d’images en ligne Rappel Rechercher des images de...
Télécharger Image Resizer VoirPetit utilitaire (PowerToy) basique, très simple, permettant de réduire la taille d'une image, dans le but, notamment, de l'envoyer par e-mail ou de la partager sur Internet (blog, site, album...). Pour plus d'informations: image resizer reduire la...
Gestion des images en HTML VoirComment afficher des images sur une page web? Quelques images sur un site Web peuvent le rendre plus attractif et plus convivial, cependant il est important de ne pas sombrer dans l'excès car les images peuvent impliquer un temps de chargement...
Fichier ISO (Image ISO) VoirFormat ISO Un fichier possédant l'extension .ISO est une image ISO, c'est-à-dire une image d'un disque (CD, DVD ou disque dur) sous forme de fichier, créer avec un logiciel de gravure. Comment lire un fichier ISO ? En l'absence de graveur, il...
LaTeX - Insertion d'images VoirStyle LaTeX permet d'insérer des images de différents formats. Le plus simple est d'insérer des fichiers de type eps (Encapsuled Postscript) : Il suffit d'insérer dans le préambule la ligne suivante : \usepackage{graphicx} Puis d'insérer...

1

le_boss, le 11 mai 2009 à 19:15:12

Bonjour

On peut voir le code ? paske sans ça c'est difficile de voir où est l'erreur.

Répondre à le_boss

2

takolin, le 11 mai 2009 à 19:51:36

Oupss...

Voilà la page du formulaire:

<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>

Et le fichier PHP:

<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(copy($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>

Le tout est placé dans mon site à l'adresse: www.takolin.ch/veledes/upload/

Répondre à takolin

3

le_boss, le 11 mai 2009 à 21:15:47

Euh dans l'erreur de ton 1er post on voit que tu utilises la fonction "move_uploaded_file()" et dans ton code elle y est pas sauf erreur. Donc y doit manquer quelque chose.

A part ça, vérifies que les chemins soient justes. Genre, "upload/renard.jpg" si ton script est déjà situé dans le dossier upload, il faut mentionner seulement "renard.jpg"... enfin, je suis surement pas clair, là, mais je vois pas comment le dire autrement.

Répondre à le_boss

4

takolin, le 11 mai 2009 à 21:36:34

Je coirs que j'ai du faire une changement et que je ne suis pas revenu juste.

Voilà le message d'erreur actuel:
Warning: move_uploaded_file(renard.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/httpd/vhosts/takolin.ch/httpdocs/veledes/upload/upload­.php on line 24

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpVhA5aD' to 'renard.jpg' in /home/httpd/vhosts/takolin.ch/httpdocs/veledes/upload/upload­.php on line 24

et voilà mon fichier PHP:
<?php
$dossier = '';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>

Pour mon dossier j'ai laissé vide:
$dossier = '';
C'est just?!?

Merci de ton aide le_boss :)

Répondre à takolin

5

le_boss, le 11 mai 2009 à 22:11:31

à voir comme ça, oui

maintenant quand je vois "permission denied" et "unable to move" je pencherais presque pour le fait que les répertoires en question n'ont pas le bon chmod.

t'es sur un serveur perso ou chez un hébergeur ?

Répondre à le_boss

6

takolin, le 11 mai 2009 à 22:16:16

Je suis chez un hébergeur, pour le dossier que je veux comme dossier finale pour mes images (c'est à dire upload) je peux mettre le chmod que je veux, actuellement c'est en 775.

Répondre à takolin

7

le_boss, le 11 mai 2009 à 22:28:33

Alors là, j'ai de la peine à voir d'où vient le problème...

ce que je te conseille, c'est de faire des essais en partant d'un truc basique, puis revenir progressivement à ton truc définitif en réessayant chaque fois... comme ça par élimination tu pourras voir ce qui embête

Répondre à le_boss

8

 takolin, le 12 mai 2009 à 14:06:10

Merci, j'ai fais cela, sa a rien donné puis j'ai compris que je devais aussi mettre le fichier php en chmod 775, puis tout roule comme sur des roulettes...

Merci bien de ton aide!

Répondre à takolin