Adresse serveur distant upload fichier php

Résolu/Fermé
baba_cool Messages postés 183 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 1 novembre 2008 - 11 déc. 2007 à 21:45
baba_cool Messages postés 183 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 1 novembre 2008 - 12 déc. 2007 à 12:10
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 ???
A voir également:

4 réponses

baba_cool Messages postés 183 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 1 novembre 2008 23
12 déc. 2007 à 12:10
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
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 ?
0
baba_cool Messages postés 183 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 1 novembre 2008 23
12 déc. 2007 à 05:10
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;
}
}
0
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 ?
0