Fonction upload de fichier

Résolu/Fermé
snoofy - 11 juil. 2011 à 12:58
 snoofy - 12 juil. 2011 à 10:43
Bonjour,

Voila j ai un souci avec cette fonction upload que j ai tiré du net et que j ai remodifié pour mes besoins.

En réalité la première fois que je l'ai utilisé elle fonctionnait très bien sous mon browser habituelle (ie).

Maintenant je dois implémenter mon code sous joomla et je suis donc obligé de hacher mon code pour que mon site ressemble à quelque chose de correcte

le code : function Upload()
{


$txt.='<form method="POST" action="" enctype="multipart/form-data">
	<!-- On limite le fichier à 100Ko -->
	<input type="hidden" name="MAX_FILE_SIZE" value="100000">
	<input type="file" name="fichePDF"><br>

	<input type="submit" name="upload" value="Envoyer les fichiers">
	</form>';


$blnFlagImage = FALSE;
 
 $repertoire = "..\fichePDF/";


  if (is_uploaded_file($_FILES['fichePDF']['tmp_name'])) 
  {
    $fichier_temp = $_FILES['fichePDF']['tmp_name'];
	
	
    $nom_fichier =  $_FILES['fichePDF']['name'];
    //création d'un répertoire.
    //mkdir ( $repertoire, 0777);	
}
	$txt.= "<h3>Le nom d'origine du fichier est '" 
              . $nom_fichier . "'.</h3>";
    $txt.= "<h3>Le type du fichier est '" 
              . $_FILES['fichePDF']['type'] . "'.</h3>";
    $txt.= "<h3>La taille du fichier est de '" 
              . $_FILES['fichePDF']['size'] . " octets'.</h3>";
    $txt.= $repertoire .'_'.$nom_fichier ."<br>" ;
	
if( !move_uploaded_file($fichier_temp, $repertoire . $nom_fichier) )
		{
        $txt.="Impossible de copier le fichier dans $repertoire";
		}
	
    else
$txt.= "Le fichier a bien été uploadé";
	
	
	return $txt;

}



Mon probleme : la fonction ne prend pas en compte correctement le chemin que je lui donne. voici l 'erreur

Impossible de copier le fichier dans .. ichePDF/

ce qui prouve que la fonction fonctionne mais pas correctement, aidez moi SVP

A voir également:

8 réponses

Impossible de copier le fichier dans .. ichePDF/

je ne comprend pas pourquoi le programme me supprime le f de mon dossier
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
11 juil. 2011 à 13:51
Bonjour,

les chemins en php sont définis avec les / et non des \ qui servent à dé-spécialiser les caractères.

Essaie donc en remplacant
$repertoire = "..\fichePDF/";

par
$repertoire = "../fichePDF/";


Adns
0
Merci pour ton aide, mais le probleme n'est pas la...
J'ai tout de même tenter la correction mais le problème persiste...
C'est au niveau de l'erreur qui est renvoyer par mon programme


Impossible de copier le fichier dans .. ichePDF/

le probleme c'est ichePDF, il manque le f au début plus le slash définissant le chemin relatif qui n'apparait pas, Pooooourquoi?
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
11 juil. 2011 à 15:01
Je ne voudrais pas insister mais pourrais tu vérifier que la modification effectuée est bien effective ?

car lors de la de spécialisation de caractère l'anti slash et le caractère disparaisse ce qui pour ton cas ferais passer
..\fichePDF/ pour .. ichePDF/

Adns
0
Merci d'avoir insisté adns le chemin de mon repertoire s'affiche correctement mais le fichier ne s'upload toujours pas... Une idée?
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
11 juil. 2011 à 15:42
Une erreur ?
Qu'affiche la page après upload ?
Le répertoire à bien été créer ?

Adns
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'explique un peu pour mieu comprendre. En faite je suis en train de créer une base de données de produit de stockage avec le code qui permet de l'exploiter sous joomla.

En faite je propose à l'utilisateur de lister tout les produits ayant son champ fichePDF vide ou de lister tout les produits ayant des informations manquantes, et ainsi de pouvoir uploader la fiche ou insérer les données manquante pour mettre à jour la bdd, une fois que l'upload ou l'insertion réaliser, le programme retourne sur la page qui permet le choix du listage.

Et donc quand je fais lister pour les fichePDF, la liste s'affiche bien le formulaire d'upload aussi, il parcours bien mon arborescence pour récupérer le fichier mais quand j'appuie sur envoyer, le programme réagi et me renvoie sur la premiere page (choix du listage) mais le fichier uploader n'est pas dans le repertoire destiné. Et je n ai aucune erreur qui s'affiche.
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
12 juil. 2011 à 08:49
Le code que tu as fourni est-il complet ? Si ce n'est qu'une partie merci de mettre l'intégralité.

Adns
0
Le code de la fonction en elle même est complet car je peux la faire fonctionner toute seul, mais toujour le meme probleme...
il manque juste la première ligne

function Upload()

et je la réutilise dans une autre par appel de fonction
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
12 juil. 2011 à 09:27
Pour faire un test

remplace ton return $txt; par un echo $txt;
Dis moi ce que cela fait.

Adns
0
J'ai remplacé le return par echo et cela ne change rien dans l'éxécution du code, sauf au niveau présentation au mes caractères sont plus petit, mais c'est tout.

Sinon a cette ligne ci

$repertoire = "../fichePDF/";

Si je laisse tel quel, ca ne fonctionne pas avec le message d'erreur en fin d'execution.

Si je supprime le / en fin de ligne, le programme s'éxecute correctement avec le message de réussite d'upload alors que rien n'apparait dans le dossier...
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
12 juil. 2011 à 10:29
Ton dossier fichePDF est-il bien dans l'arborescence un cran au dessus du fichier d'upload ?
0
le dossier fichePDF est dans mon arborescence 5 cran au dessus... Mais j ai cherché, Car le programme me dit que ca as fonctionné... Il upload les fichiers au même niveau que le dossier fichePDF mais sans me les mettres dedans, je vais trouvé merci beaucoup pour ton aide.
0