Page 1 sur 2
move_uploaded_file Vs lien absolu
Posté : 28 sept. 2006, 10:25
par nejme.eddinne
Bonjour
J'utilise la fonction move_uploaded_file() pour uploaded les fichiers sur le serveur, mais cette dernière ne fonctionne pas (bien que en local ça marche)
Informations:
- J'ai tous les droits d'accès sur les dossiers
- allow_url_fopen : désactivé
- ça marche quand j'upload dans le mm répertoire, mais si j'upload dans un dossier parent ça ne fonctionne pas:
exemple:
j'ai un dossier [upload] qui contient [admin] et [photos]
dans le dossier [admin] j'ai un fichier "upload.php" et un dossier [images]
quand j'upload dans le dossier [images] ça fonctionne mais quand j'upload dans le dossier photos ça ne fonctionne pas.
Autrement dit si j'utilise "../" çe ne fonctionne pas.
d'après vous ça peut être koi ??
Posté : 28 sept. 2006, 11:04
par Ryle
Un problème de droits

Posté : 28 sept. 2006, 11:05
par nejme.eddinne
j'ai tous les droits d'accès sur les dossiers (777)
Posté : 28 sept. 2006, 11:14
par Ryle
est ce qu'il te met un message d'erreur ? que te retourne la fonction move_uploaded_file() ?
est ce que cela fonctionne si tu remontes d'un dossier (au niveau "upload") sans redescendre dans photos ?

Posté : 28 sept. 2006, 11:18
par zigz4g
Salut.
Que trouve tu dans ta variable $_FILES ???
$_FILES['userfile']['error']
Posté : 28 sept. 2006, 11:18
par nejme.eddinne
est ce qu'il te met un message d'erreur ? que te retourne la fonction move_uploaded_file() ?
aucun message d'erreur (display_error) est désactivé je pense.
est ce que cela fonctionne si tu remontes d'un dossier (au niveau "upload") sans redescendre dans photos ?

ça ne fonctionne pas
dès que j'utilise "../" çe ne fonctionne pas.
je crois que c du a allow_url_fopen non ??
Posté : 28 sept. 2006, 11:29
par Ryle
Tu peux ajouter un appel à "error_reporting(E_ALL);" avant le move pour être sur d'afficher les messages d'erreur s'il y en a
Pour le "allow_url_fopen" il me semble qu'il n'est vallable qu'au niveau de l'url et pas au niveau du systeme de fichier
Posté : 28 sept. 2006, 11:44
par nejme.eddinne
Salut.
Que trouve tu dans ta variable $_FILES ???
$_FILES['userfile']['error']
$_FILES['userfile']['error'] =0
aucune erreur d'upload, l'erreur se fait o niveau de l'utilisation de move_uploaded_file()
pour le "error_reporting()" aucune erreur
Posté : 28 sept. 2006, 12:03
par Ryle
Et si tu donnes le chemin absolu à partir de la racine du disque jusqu'à ton dossier "photos" cela fonctionne ?
... c'est pour le moins bizare comme histoire

Posté : 28 sept. 2006, 12:13
par zigz4g
Essaye d'afficher ton chemin en '../admin/' avec la commande string realpath ( string path ).
<?php
echo 'Le chemin est : [', realpath('../admin/'), ']<br />';
?>
Posté : 28 sept. 2006, 12:17
par nejme.eddinne
Et si tu donnes le chemin absolu à partir de la racine du disque jusqu'à ton dossier "photos" cela fonctionne ?
... c'est pour le moins bizare comme histoire

non çe ne fonctionn pas

g fait
move_uploaded_file($_FILES["image"]["tmp_name"],'/photos/$nom_fichier');
et ça ne marche pas
et mnt je dois intégrer FCKeditor alors là c la kata

Posté : 28 sept. 2006, 12:21
par Ryle
vi mais là c'est normal, je parlais d'un chemin absolu depuis la racine du disque, pas du site
le chemin absolu doit être quelque chose comme /home/.../photos ou C:\...\photos (tu peux le trouver dans $_SERVER[DOCUMENT_ROOT])
Posté : 28 sept. 2006, 12:27
par nejme.eddinne
j'ais essayé d'utiliser le chemin complet
/home/sites/.......
mais tjrs la mm chose

Posté : 28 sept. 2006, 12:32
par zigz4g
Peut etre avec un bout de ton code et un listing de tes repertoire, on pourra peut etre trouver la cause.
Pour le listing fait un "ls -lRa /home/sites/.../upload/" pour bien voir les droits.
Posté : 28 sept. 2006, 12:39
par nejme.eddinne
if($_FILES["photo"]["name"]!="")
{
$ext=explode('.',$_FILES["photo"]["name"]);
$fichier="prdct_".md5(time())."_".rand(0,100).".".$ext[(sizeof($ext)-1)];
if(@move_uploaded_file($_FILES["photo"]["tmp_name"],"../pics/$fichier")
}else{
$fichier="no.jpg";
}
repertoires:
/
<pics>
<admin>
upload.php (upload.php sous <admin>)
<admin><photos>
Si j'upload vers <photos> ça marche sinon je veux uploader vers <pics> ça ne fonctionne pas.