Probleme upload fichier

alphon5o -  
 toto -
Bonjour,
je tente de mettre sur mon site un formulaire de contact qui donne la possibilité aux visiteurs de m'envoyer des fichiers
pour realiser cela j'utilise un fichier php pour traiter les données du formulaires. jusque la tout va bien mais pour pouvoir deposer le fichier sur le serveur il faut soit le copier ou le deplacer en se servant des fonctions copy($src,$cible) / move_uploaded_file($src,$cible), e fichier etant temporement stocké dans $src mais le probleme est que ni la copie ni le deplacement ne reussi. voici le message qu'il m'afffiche:

nom du fichier => weather_lightning.png
taille du fichier => 641
type de fichier => image/png
nom temporaire sur le serveur => /var/tmp/phpHraGVU

Warning: copy(teste): failed to open stream: Permission denied in /autofs/netapp/account/cremi/mamasow/WWW/public/upload2.php on line 21

en me basant sur le message d'erreur je suppose que jai pas les permissions requise pour soit a ouvrir le fichier a deplacer en lecture soit ouvrir le fichier cible en ecriture sauf que ce pas le cas puisque le repertoire destiné a acceuillir le fichiers est accessible en ecriture pour tt le monde et le celui qui stock les fichier temporaire en lecture.

si vous avez des idées aidez moi. merci
A voir également:

2 réponses

toto
 
Rien à redire pour le script

Peux-tu vérifier que tu as le droit de créer un fichier directement avec un fopen dans le même script :

if (($fichier=fopen("./upload/essai.txt","w"))===false)
echo "échec de la création";
else {
echo "succès de la création";
fclose($fichier);
}
1
toto
 
Bonjour

Il faut utiliser le move_uploaded_file en utilisant comme source la variable $_FILES['tonfichier']['tmp_name']
('tonfichier' étant à remplacer par le nom du champ du formulaire de téléchargement, mais je suppose que tu le sais déjà..). Je ne pense pas que ça marche avec le copy, il n'est pas fait pour.

Es-tu bien sûr du répertoire de destination ? Comment le nom de fichier (répertoire + fichier) est-il mis dans $cible ?
0
alphon5o
 
voici le script en question:

<?php
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier_choisi"]["name"]))
{
        //nom du fichier choisi:
        $nomFichier    = $_FILES["fichier_choisi"]["name"] ;
        //nom temporaire sur le serveur:
        $nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
        //type du fichier choisi:
        $typeFichier   = $_FILES["fichier_choisi"]["type"] ;
        //poids en octets du fichier choisit:
        $poidsFichier  = $_FILES["fichier_choisi"]["size"] ;
        //code de l'erreur si jamais il y en a une:
        $codeErreur    = $_FILES["fichier_choisi"]["error"] ;

        //chemin qui mène au dossier qui va contenir les fichiers uplaod:
        $chemin = "./upload/" ;

        if(@move_uploaded_file($nomTemporaire, $chemin.$nomFichier))
                echo("<br>l'upload a r&eacute;ussi") ;
        else
                echo("<br>l'upload a &eacute;chou&eacute;") ;
}//fin if
else
{
        echo("Vous n'avez pas choisit de fichier!!<br>") ;
        echo("<a href=\"./formUpload.html\">Retour</a>") ;
}//fin else

0