problème fonction php: move_uploaded_file()

Petit nouveau ! | 2 Messages

18 juin 2008, 11:29

Bonjour,

Suite au changement d'hébergeur pour mon site, je rencontre une petite difficulté. En effet, le script qui me permettait de renommer et déplacer un fichier pdf sur mon serveur ne marche plus. Voici le code qui marchait sous Oléane (ancien hébergeur), pourriez vous m'indiquer comment faire avec DRI? Il me semble que le soucis viendrait du chemin spécifié que je passe à la fonction move_uploaded_file() mais je n'arrive pas à corriger mon erreur. Voici donc le code html et php ainsi que les erreurs générées:

formulaire:
<form enctype="multipart/form-data" action="TransfertFichier.php" method="post">
<fieldset>
<legend>Transfert du fichier .pdf sur le serveur</legend>
<div>
<label for="monPdf">S&eacute;lection de la revue : </label>
<input type="file" name="monPdf" id="monPdf" accept="application/pdf" /></div>
<div><label for="choixRegion">Cette revue appartient &agrave; la r&eacute;gion :</label>
<select name="choixRegion" id="choixRegion"><?php
while($regions = ObjetSuivant($resultat))
{
echo"<option value=\"$regions->ID_region\">$regions->intitule</option>\n";
}
?>
</select></div>
</fieldset>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="image" src="images/up-arrow.png" alt="Envoyer" width="58" height="43" />
</form>

TransfertFichier.php:
if(is_uploaded_file($_FILES['monPdf']['tmp_name']))
{
// Récupération des variables
$name = $_FILES['monPdf']['name'];
// Convertion des variables
$hash = md5($_FILES['monPdf']['tmp_name']);
$date = date('Y-m-d H:i:s');
// Récupération du répertoire où copier le fichier
switch ($_POST['choixRegion']) {
case 1 : $repRegion = '/revue/tmp/npdc/';
break;
case 2 : $repRegion = '/revue/tmp/est/';
break;
case 3 : $repRegion = '/revue/tmp/normandie/';
break;
case 4 : $repRegion = '/revue/tmp/idf/';
break;
case 5 : $repRegion = '/revue/tmp/paca/';
break;
default : echo "région pas traitée";
break;
}
$connexion = Connexion(pNom, pMotPasse, pBase, pServeur);
$resultat = ExecRequete ($requete, $connexion);
// On retourne les résultats
$repertoire ="/tpc/mnt/filer".$_SERVER['DOCUMENT_ROOT'].$repRegion;
move_uploaded_file($_FILES['monPdf']['tmp_name'], $repertoire.$name);
$cRevue = md5($name);
}
else
{
echo"Vous avez oubli&eacute; de transmettre le fichier !?\n";
}

erreurs générées:
Warning: move_uploaded_file(/tpc/mnt/filer/var/www/html/virtualdomains/NUMEROCLIENT/NOMDEDOMAINE/www/revue/tmp/npdc/FirstEcoNORD_2008-06-17.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/html/virtualdomains/*******/*******/www/revue/transfert/TransfertFichier.php on line 64

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpnmchlW' to '/tpc/mnt/filer/var/www/html/virtualdomains/*****/********/www/revue/tmp/npdc/FirstEcoNORD_2008-06-17.pdf' in /var/www/html/virtualdomains/******/**********/www/revue/transfert/TransfertFichier.php on line 64

Cordialement,
Julien

Mammouth du PHP | 514 Messages

18 juin 2008, 12:18

<form enctype="multipart/form-data" action="TransfertFichier.php" method="post">
<fieldset>
<legend>Transfert du fichier .pdf sur le serveur</legend>
<div>
<label for="monPdf">S&eacute;lection de la revue : </label>
<input type="file" name="monPdf" id="monPdf" accept="application/pdf" /></div>
<div><label for="choixRegion">Cette revue appartient &agrave; la r&eacute;gion :</label>
<select name="choixRegion" id="choixRegion"><?php
while($regions = ObjetSuivant($resultat))
{
echo"<option value=\"$regions->ID_region\">$regions->intitule</option>\n";
}
?>
</select></div>
</fieldset>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="image" src="images/up-arrow.png" alt="Envoyer" width="58" height="43" />
</form>

TransfertFichier.php:
if(is_uploaded_file($_FILES['monPdf']['tmp_name']))
{
// Récupération des variables
$name = $_FILES['monPdf']['name'];
// Convertion des variables
$hash = md5($_FILES['monPdf']['tmp_name']);
$date = date('Y-m-d H:i:s');
// Récupération du répertoire où copier le fichier
switch ($_POST['choixRegion']) {
case 1 : $repRegion = '/revue/tmp/npdc/';
break;
case 2 : $repRegion = '/revue/tmp/est/';
break;
case 3 : $repRegion = '/revue/tmp/normandie/';
break;
case 4 : $repRegion = '/revue/tmp/idf/';
break;
case 5 : $repRegion = '/revue/tmp/paca/';
break;
default : echo "région pas traitée";
break;
}
$connexion = Connexion(pNom, pMotPasse, pBase, pServeur);
$resultat = ExecRequete ($requete, $connexion);
// On retourne les résultats
$repertoire ="/tpc/mnt/filer".$_SERVER['DOCUMENT_ROOT'].$repRegion;
move_uploaded_file($_FILES['monPdf']['tmp_name'], $repertoire.$name);
$cRevue = md5($name);
}
else
{
echo"Vous avez oubli&eacute; de transmettre le fichier !?\n";
} 
plus lisible comme ça ...

Petit nouveau ! | 2 Messages

18 juin 2008, 12:55

Je ne suis pas un habitué des forums donc Merci de ton aide mcorgnet.