Rechercher : dans
Par :

Adresse serveur distant upload fichier php

Dernière réponse le 12 déc 2007 à 12:10:13 baba_cool, le 11 déc 2007 à 21:45:06 
 Signaler ce message aux modérateurs

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/'.$_F­ILES['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 ???

Configuration: Windows XP
Firefox 2.0.0.4

1

le père, le 12 déc 2007 à 00:10:23

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 ?

Répondre à le père

2

baba_cool, le 12 déc 2007 à 05:10:38

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;
}
}

Répondre à baba_cool

3

le père, le 12 déc 2007 à 08:11:36

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 ?

Répondre à le père

4

 baba_cool, le 12 déc 2007 à 12:10:13
  • +1

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.

Répondre à baba_cool