Comment modifier l'attibut de fichier en php?

Résolu/Fermé
chtimi59250 Messages postés 13 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 17 avril 2008 - 22 déc. 2007 à 15:58
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 22 déc. 2007 à 17:32
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

9 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 524
22 déc. 2007 à 16:08
0
chtimi59250 Messages postés 13 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 17 avril 2008
22 déc. 2007 à 16:11
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 524
22 déc. 2007 à 16:29
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 samedi 22 décembre 2007 Statut Membre Dernière intervention 17 avril 2008
22 déc. 2007 à 16:37
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 524
22 déc. 2007 à 16:59
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 samedi 22 décembre 2007 Statut Membre Dernière intervention 17 avril 2008
22 déc. 2007 à 17:12
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 524
22 déc. 2007 à 17:17
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 samedi 22 décembre 2007 Statut Membre Dernière intervention 17 avril 2008
22 déc. 2007 à 17:28
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 524
22 déc. 2007 à 17:32
Evidemment que je suis génial!

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