Rechercher : dans
Par :

Probleme de droits failed to open stream

Dernière réponse le 10 déc 2008 à 21:48:23 pedrolitoofpg, le 13 mar 2008 à 05:07:00 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un gros probleme ou plutot un long probleme, parce que la je cherche depuis 2 jours et c'est la m**** !!
Jvous explique; j'essaye en fait d'uploader une image sur mon serveur web mais le probleme que que ça m'affiche Warning: move_uploaded_file(images/image.jpg) [function.move_uploaded_file]: failed to open stream: Permission denied in ....

le dossier image existe bien mais je ne sais pas sa veut pas copier, un probleme de droits que je n'arrive pas à resoudre. J'ai changer les droits du dossier en question pour autoriser l'ecriture par tout le monde et la ça fonctionne. Mais bon je ne pense pas que se soit une bonne solution. Surtout que quand je créer un nouveau dossier avec mkdir($dossier,0777) impossible de supprimer ces dossiers par la suite, meme en allant directement sur l'admin de l'hebergeur.

Comment faire pour s'authentifier en quelque sorte de maniere à ce que le deplacement du fichier vers le serveur soir possible. Voici le code "mal de crane", pourtant archi basique:

<?php

if(isset($_FILES['photo'])) 
{
$chemin_destination = 'images/';
move_uploaded_file($_FILES['photo']['tmp_name'], $chemin_destination.$_FILES['photo']['name']);
}

?>



Ce serai vraiment super sympa de m'aider, merci.
Configuration: Windows XP
Firefox 2.0.0.12

1

 NothingAtALL, le 10 déc 2008 à 21:48:23

Hey,

pour ne pas être obliger de mettre ton dossier en 777, tu peux donner la propriété de ton dossier au serveur qui va par la suite aller créer les fichiers dans ton dossier -> par exemple apache et tu va pouvoir mettre ton dossier en 755

pour ce qui est du fait que tu n'es pas capable de supprimer les dossiers que tu mets en 777... et si tu es certain que tu as bien les droits d'admin, je ne vois pas d'autres manière que d'aller les détruire en mode SSH.

voici un code que je préfères pour l'upload de fichier
tu mets ce que ta besoin pour le $path et le $folder
le $insertArray[$key] est pour la suite l'enregistrement dans la bd

if (isset($_FILES)) {
foreach ($_FILES as $key => $value) {
if ($value['error'] == 0) {
if (is_file($path.$folder.$value['name'])) {
$file_explode = explode('.',$value['name']);
for ($i=1;is_file($path.$folder.$file_explode[0].'('.$i.').'.$file_explode[1]);$i++);
$uploadFile = $path.$folder.$file_explode[0].'('.$i.').'.$file_explode[1];
$value['name'] = $file_explode[0].'('.$i.').'.$file_explode[1];
} else {
$uploadFile = $path.$folder.$value['name'];
}
if(is_uploaded_file($value['tmp_name'])) {
if(move_uploaded_file($value['tmp_name'], $uploadFile)) {
chmod($uploadFile, 0755);
$insertArray[$key] = $value['name'];
}
}
}
}
}

peace

Répondre à NothingAtALL