Upload de fichier en php - PHP - Programmation
Marsh Posté le 22-12-2005 à 10:15:47
Bonjour!
En effet, cela peut venir des droits
As tu fait un CHMOD 666 sur le dossier dans lequel tu veux uploader tes fichiers? (je crois que c'est 666, mais ma mémoire est un peu rouillée )
Marsh Posté le 22-12-2005 à 10:31:33
Dans le fonctionnement, l'upload par un formulaire est dans un premier temps geré par Apache qui va deposer le fichier dans un repertoire de travail. Donc verifier les droits en ecriture sur ce dossier pour Apache.
Ensuite, verifier que PHP puisse lire ce repertoire. Et bien sur, si tu fais un move, controle le droit en ecriture sue le repertoire cible.
Marsh Posté le 22-12-2005 à 15:10:58
Bon je pense que ça sera plus simple que je vous donne les sources, alors voici le formulaire :
Code :
|
et voici le script PHP :
Code :
|
Voila
Marsh Posté le 22-12-2005 à 16:04:51
le coup du chmod dans ton script, je suis pas sûr que ce soit une bonne idée. Mieux vaut mettre les droits sur le répertoire une bonne fois pour toute et pas à chaque exécution du script. En +, si le serveur est en Windows, je ne suis pas sûr que chmod fonctionne.
Sinon, pour éviter que le script plante, tu peux tester si t'as les droits en écriture sur le répertoire de destination ; si c'est pas le cas, tu mets un message d'erreur à toi...
Marsh Posté le 22-12-2005 à 16:06:25
et comment je les changent les droits directement, car j'essaye de le faire avec filezilla mais apparament les droits ne sont pas enregistrés ?
Marsh Posté le 22-12-2005 à 17:41:00
ReplyMarsh Posté le 22-12-2005 à 17:44:30
tu te connectes avec filezilla, tu cliques droits sur le dossier, et voilà je sais plus ce qui est marqué
Marsh Posté le 22-12-2005 à 17:45:40
bin c'est ce que je fais ça marche, mais quand je reclick sur le dossier pour vérifier si c'est bien appliqué, bin c'est revenu au point de départ
Marsh Posté le 22-12-2005 à 17:51:54
ReplyMarsh Posté le 22-12-2005 à 17:52:45
lol la ça devient trop technique pour moi, je précise que j'utilise un compte free
Marsh Posté le 24-12-2005 à 00:23:40
Ton erreur, "move_upload_files unabled to access", c'est peut-être aussi que tu donnes un répertoire qui n'existe pas. Je suis chez Free et mon upload de fichier fonctionne avec des lignes toutes simples:
if(isset($HTTP_POST_FILES['fichier']['tmp_name'])){
$fichier = $_FILES['fichier']['name'];
$tmp = $_FILES['fichier']['tmp_name'];
if ( $fichier ){
//indiquer l'url relative vers le dossier d'upload
$chemin="image/";
$nouveau_nom = $chemin.$fichier;
if ( move_uploaded_file( $tmp , $nouveau_nom ) ) {
echo "<br>Transfert du fichier réussi<br><br>";
echo "<br>Pour voir votre fichier, <a href=".$nouveau_nom.">Cliquez ici</a>";
}
else {
echo "Transfert échoué<br>";
}
}
}
Marsh Posté le 24-12-2005 à 15:25:32
Je viens d'essayer avec ta solution mais j'ai toujours le même problème d'accès, alors comme fais-tu pour donner les droits d'accès à ton dossier image ?
Marsh Posté le 24-12-2005 à 15:40:38
Je viens de trouver le problème, c'était juste une question de '/' où il ne fallait pas
Voila donc maintenant j'arrive à uploader les fichiers, j'arrive à affichier le contenu du fichier dans lequel j'upload, mais je voudrais savoir s'il est possible d'ajouter pour chaque fichier un boutton "télécharger" et un autre "supprimer" car je ne vois pas comment faire sans Base de données
Merci
Marsh Posté le 28-12-2005 à 14:31:19
Oui, c'est possible. Utilise la fonction readdir() qui permet de lire les noms de fichiers d'un répertoire. Exemple:
$h=opendir("image/" );
while($file=readdir($h)) echo $file."<br>";
closedir($h);
Marsh Posté le 28-12-2005 à 14:41:59
oui, ça j'ai réussi à la faire, mais ce que je voudrais savoir, c'est comment utiliser des bouttons qui font référence à un fichier ??
Marsh Posté le 28-12-2005 à 16:45:06
pour ouvrir un fichier, utilise la fonction javascript window.open car tu connais le nom de tes fichiers.
echo "<input type=button onclick=\"javascript:window.open('".$file."','_blank')\">";
Marsh Posté le 28-12-2005 à 16:45:59
ReplyMarsh Posté le 02-01-2006 à 16:25:07
hacksi a écrit : ok merci et pour le técharger et le supprimer ? |
télécharger -> un simple lien hypertexte avec le bon chemin (répertoires et nom du fichier) en face de chaque fichier
Supprimer -> un bouton en face de chaque fichier qui contient le nom du fichier à supprimer (ou alors un lien vers un script .php qui prend en paramètre le nom du fichier à supprimer). Après, dans ton php, tu récupères le nom du fichier à supprimer et tu utilises la fonction unlink().
Marsh Posté le 02-01-2006 à 16:25:11
ouai je suis d'accords pour le télécharger mais pour le supprimer, comment tu fais puisque ce n'est pas une base de données ? unlink sert-il à supprimer directement le fichier ?
Marsh Posté le 09-01-2006 à 11:07:35
ReplyMarsh Posté le 09-01-2006 à 14:19:50
hacksi a écrit : Pourriez-vous me donner un exemple de l'utilisation de unlink() svp |
va sur http://fr.php.net/ et cherche la fonction unlink. y'a juste à passer le path complet du fichier à supprimer, c'est quand même pas dur!
Marsh Posté le 21-12-2005 à 22:41:39
Bonjour,
voila je voudrais pouvoir uploader des fichiers par le biais du php.
Donc pour cela, j'utilise un formulaire HTML qui appel un script PHP, mais en fait j'obtient l'erreur suivante quand je l'exécute move_uploaded_file(): Unable to access.............................
Donc après avoir lu divers articles sur le sujet, le problème vient apparament des droit d'accès au dossier (comme le message d'erreur l'indique !). Mais j'ai tout essayé mais ya pas moyen
Alors quelqu'un peut-il m'aider svp ?
Merci