Probleme upload fichier
alphon5o
-
toto -
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
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:
- Probleme upload fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
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);
}
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);
}
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 ?
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 ?
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éussi") ;
else
echo("<br>l'upload a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!<br>") ;
echo("<a href=\"./formUpload.html\">Retour</a>") ;
}//fin else