Comment modifier l'attibut de fichier en php?

Résolu
chtimi59250 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis novices en programmation html et php et j'ai créer un forum pour pouvoir partager des fichier avec ma classe. De ce fait j'ai ouvert un serveur et créer une page html et php qui permet a mes camarades d'héberger leur fichier dans le dossier qu'il désir. Une fois héberger il est noté l'adresse où se trouve leur fichier. Jusque la tout va bien. Mon problème est l'attribut (permission) donner à ce fichier qui est 600 donc il ne peuvent pas y accéder.

Je voudrait savoir s'il existe une commande en php (que j'incluerai dans ma page en php qui traite mon fichier en le mettant dans le dossier), pour que l'attribut du fichier soit 777.

J'ai déja effectué de multiple recherche mais rien ne correspondé a mes attentes.

Code php:

<?php
$repertoireDestination = "./dossier/";
$nomDestination = $_FILES["monfichier"]["name"];

// Pour raison de sécurité nous ajouterons aux fichiers
// portant une extension .php .php3, l'extension .txt
if (eregi(".php", $nomDestination)) {
$nomDestination .= ".txt";
}

if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
if (rename($_FILES["monfichier"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
" a été déplacé vers https://www.salesforce.com/products/platform/overview/".$repertoireDestination.$nomDestination;
} else {
echo "Le déplacement du fichier temporaire a échoué".
" vérifiez l'existence du répertoire ".$repertoireDestination;
}
} else {
echo "Le fichier n'a pas été uploadé.";
}
?>

Configuration: Windows XP
Firefox 2.0.0.11


Merci d'avance
A voir également:

9 réponses

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
0
chtimi59250 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci je crois que c'est cela
Mais comment je fais avec le nom du fichier car c'est une variable: $nomDestination
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
T'inquiète, aucune importance tu mets ta variable en tant que nom de fichier. Une variable n'est qu'une valeur.
0
chtimi59250 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Donc je met:
chmod (".$repertoireDestination.$nomDestination", 0777);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Ca dépend s'il y a un "/" à la fin de $repertoireDestination. S'il n'y en a pas, il faut le rajouter.
Donc, soit:
chmod ($repertoireDestination.$nomDestination, 0777);
soit:
chmod ($repertoireDestination . '/'. $nomDestination, 0777);
0
chtimi59250 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Ma variable $repertoireDestination contient bien un / donc j'ai mis comme ligne de code chmod ($repertoireDestination.$nomDestination, 0777);

Ce qui le donne pour ma page en php:

<?php
$repertoireDestination = "./images/";
$nomDestination = $_FILES["monfichier"]["name"];

// Pour raison de sécurité nous ajouterons aux fichiers
// portant une extension .php .php3, l'extension .txt
if (eregi(".php", $nomDestination)) {
$nomDestination .= ".txt";
}

if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
if (rename($_FILES["monfichier"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
" a été déplacé vers http://site/images/".$nomDestination;
chmod (.$repertoireDestination.$nomDestination, 0777);
} else {
echo "Le déplacement du fichier temporaire a échoué".
" vérifiez l'existence du répertoire ".$repertoireDestination;
}
} else {
echo "Le fichier n'a pas été uploadé.";
}
?>

J'obtient comme message d'erreur:
Parse error: syntax error, unexpected '.', expecting ')' in /www/sites/1/ifrance.com/t/s/tslicp/site/up.php on line 19

Je ne sais pas si j'ai bien placé le chmod ($repertoireDestination.$nomDestination, 0777);
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Sur cette ligne:
 chmod (.$repertoireDestination.$nomDestination, 0777)


Pourquoi tu mets un point au début? Le point est un opérateur binaire, ça signifie qu'il lui faut deux opérandes:
operande1 . operande2


Ce premier point il faut l'enlever ;-)
0
chtimi59250 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
CA MARCHE!!!!
Merci Kilian je te kiff tu est génial lol.
Merci d'avoir pris ton temps avec un noob comme moi!
Merci surtout de la part de tte ma classe. ^^
Ahhh je vais enfin pouvoir finir mon service d'upload de fichier pour ma classe.

Je met le code finit comme ça si des gens on envi de faire un petit upload:

<?php
$repertoireDestination = "./dossier/";
$nomDestination = $_FILES["monfichier"]["name"];

// Pour raison de sécurité nous ajouterons aux fichiers
// portant une extension .php .php3, l'extension .txt
if (eregi(".php", $nomDestination)) {
$nomDestination .= ".txt";
}

if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
if (rename($_FILES["monfichier"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
" a été déplacé vers http://site/dossier/".$nomDestination;
chmod ($repertoireDestination.$nomDestination, 0777);
} else {
echo "Le déplacement du fichier temporaire a échoué".
" vérifiez l'existence du répertoire ".$repertoireDestination;
}
} else {
echo "Le fichier n'a pas été uploadé.";
}
?>
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Evidemment que je suis génial!

Merci pour le récapitulatif du code source, ça pourra servir à d'autres :-)
0