Comment modifier l'attibut de fichier en php?
Résolu
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
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
-
ModérateurEvidemment que je suis génial!
Merci pour le récapitulatif du code source, ça pourra servir à d'autres :-) -
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é.";
}
?> -
ModérateurSur 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 ;-) -
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); -
ModérateurCa 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); -
Donc je met:
chmod (".$repertoireDestination.$nomDestination", 0777); -
ModérateurT'inquiète, aucune importance tu mets ta variable en tant que nom de fichier. Une variable n'est qu'une valeur.
-
Merci je crois que c'est cela
Mais comment je fais avec le nom du fichier car c'est une variable: $nomDestination -
Modérateur