Adresse serveur distant upload fichier php [Résolu/Fermé]

Signaler
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
-
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
-
Bonjour,

J'ai créé en php un repertoire téléphonique, et j'y ai ajouté la possibilié de mettre une photo pour chaque contact... tout marche nickel en local, je choisi l'image sur le PC, la renomme avec l'id du contact et la place dans le repertoire prévu... Mais dés que je met ca sur internet, ca bug... je pense que le probleme viens du chemin qui indique ou mettre le fichier:

en local:
$upfile = 'C:/Program Files/EasyPHP1-8/www/repertoire/options/photos/avatars/'.$_FILES['userfile']['name'];

Distant:
$upfile = '/hsphere/local/home/babacool/babacool.fr/repertoire/photos/avatars/'.$_FILES['userfile']['name'];

J'ai bien mis 777 en CHMOD sur le repertoire "avatars"...

Y a t'il moyen de récupérer quelques part le chemein distant ???

4 réponses

Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
23
C'est bon grace à ton aide, ca marche nickel :) !!!

en plus, j'ai fait tout un systeme pour pour voir faire tourner le script en local ou en distant, mais la, plus besoin !!! c'est genial !!!

je met le script complet pour ceux que ca peut aider ou interesser... je pense pouvoir l'ameliorer, la j'ai un peu bricolé, mais ca marche, c'est le principal... des que j'ai un peut de temps, je le fait plus propre...

Merci encore !!


=> SCRIPT QUI PLACE UNE IMAGE SUR LE SERVEUR (local ou distant :) ), SUPPRIME L'ANCIENNE SI PRESENTE PUIS LA RENOMME EN SE SERVANT DE LA BASE DE DONNEES :

<html>
<title>photos2</title>
<? include "../admin/connexion.php"; ?>
<body>
<div align="center">


<? // Verif du process de téléchargement
if ($_FILES['userfile']['error'] > 0)
{
echo "probleme:";
switch ($_FILES['userfile']['error'])
{
case 1: echo "erreur n°1"; break ;
case 2: echo "erreur n°2"; break ;
case 3: echo "erreur n°3"; break ;
case 4: echo "erreur n°4"; break ;
}
exit;
}

// Récupération des variables
$id = $_POST['id'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$img = ''.$id.'' ;

//Chemin du repertoire
$a = $_SERVER['DOCUMENT_ROOT'];
$b = "/repertoire/photos/avatars/";
$rep = "$a$b";


// place le fichier sur le serveur

$c = $_FILES['userfile']['name'];
$upfile = "$rep$c";
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if (!move_uploaded_file($_FILES['userfile']['tmp_name'],$upfile))
{
echo "ne peut pas deplacer dans le repert cible";
exit;
}
}
else
{
echo "possible file attack ";
exit;
}


//affichage du nom de l'image originale*************************************************************************

echo "nom du fichier original:<br>";
echo "*** ";
echo $_FILES['userfile']['name'];
echo " ***<br><br>";


//verification et destruction du fichier si deja present pour changer d'avatar**********************************

if(file_exists("$rep/$img.jpg"))
{
echo "modification de l'avatar de $prenom $nom effectuée <br><br>";
unlink("$rep/$img.jpg");
}


//Renomme le fichier avec le nom/prenom du contact**************************************************************

if(@rename("$upfile","$rep/$img.jpg"))
{
echo "Le fichier a été renommé en $img.jpg.<br><br>";
//echo "dans le repertoire $upfile";
}
else
{
echo "Erreur";
}
?>

<form method="post" action="../general/fiche.php">
<input type="hidden" name="id" value="<? echo ''.$id.'' ; ?>" />
<input type="hidden" name="nom" value="<? echo ''.$nom.'' ; ?>" />
<input type="hidden" name="prenom" value="<? echo ''.$prenom.'' ; ?>" />
<input type="submit" value="valider" />
</div>
</form>
</body>
</html>


PROCHIANE ETAPE, REDIMENSIONNER LE FICHIER POUR OPTIMISER LA PLACE SUR LE SERVEUR ET LES TEMPS D'AFFICHAGE.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Bonsoir

$_SERVER['DOCUMENT_ROOT'] te donne le chemin de la racine de ton site - distant ou local

Tu utilises bien move_uploaded_file pour déplacer et renommer le fichier téléchargé ?
Testes-tu si la fonction te rend true ou false ?
Peux-tu donner le morceau de script concernant le téléchargement ?
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
23
voila mon script:

$upfile = '/hsphere/local/home/babacool/babacool.fr/repertoire/photos/avatars/'.$_FILES['userfile']['name'];
if(file_exists("$img"))
{
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if (!move_uploaded_file($_FILES['userfile']['tmp_name'],$upfile))
{
echo "ne peut pas deplacer dans le repert cible SERVEUR DISTANT";
exit;
}
}
else
{
echo "Probleme lors du telechargement du fichier ";
exit;
}
}
Bonjour

Qu'est-ce que c'est ton $img ?
Obtiens-tu un message d'erreur ou aucun ?
Ton nom de fichier contient-il des caractères exotiques (espaces, lettres accentuées au autres) qui seraient acceptées par ton XP mais pas par l'OS de ton hébergeur ?