Insérer un fichier en Php

Résolu/Fermé
vikyky Messages postés 6 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 8 février 2007 - 24 sept. 2005 à 14:20
 issam - 26 juil. 2008 à 20:31
Bonjour,

Je crée un site web en Php. J'aimerai que le client puisse m'envoyer un fichier. Pour cela j'utilise la fonction move_uploaded_file() .

Mais celle-ci ne marche pas. Croyez-vous que cela est du car je n'ai pas donné l'autorisation d'écriture, et si c'est le cas, comment puis-je la donner.

Cela est-il du à autre chose?
Merci de votre aide

Viky
A voir également:

4 réponses

dedale82 Messages postés 403 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008 282
24 sept. 2005 à 14:44
Salut,
sans code, c'est difficile de dire ce qui ne vas pas, donc en attendant, tu peux aller jeter un coup d'oeil la
http://www.phpfrance.com/tutoriaux/index.php/2005/04/26/30-lupload-de-fichiers
et la
http://fr.php.net/manual/fr/function.move-uploaded-file.php

A bientot
0
vikyky Messages postés 6 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 8 février 2007
24 sept. 2005 à 15:06
Je ne vois toujours pas où est mon erreur. J'envoie mon script ci-dessous.

//dans ma page html

<html>
<HEAD> <title>Ajout fichier </title> </head>
<body>

<form method="post" action="inserer_fichier.php" enctype="multipart/form-data">
Nom du fichier: 

<input type="file" name="image" size="40">

<br><input type="submit" name="ok">
</form>
</body>
</html>


//dans mon php inserer_fichier.php
$uploaddir = '/images';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Le fichier est valide, et a été téléchargé 
avec succès. \n";
} else {
echo "Attaque potentielle par téléchargement de fichiers. 
\n";
}

?>


</body>
</html>


il n'y a pas d'erreur retourné, mais lorsque je vérifie que le fichier a bien été copié, ce n'est pas le cas.

Merci d'avance.

Viky
0
pzuk Messages postés 19 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 29 septembre 2006 5
25 sept. 2005 à 17:57
Je n'ai pas lu le code mais je pense que le problème vient du fait que le php n'a pas le droit d'écrire sur le disque d'hebergement.

Je m'explique : Il y a un systeme de permission en écriture et en lecture sur les serveurs. Cela s'appelle le CHMOD.
Pour que PHP puisse écrire sur le serveur (donc enregistrer l'image, il faut un CHMOD à 777.
Pour modifier le CHMOD il faut que tu cliques (droit) sur le fichier où tu vas enregistrer tes images, puis sur "attributs" et mettre le bon CHOMD.

Voila j'espere ne pas avoir dit trop de conneries et que c'est ça ;
0
Viky > pzuk Messages postés 19 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 29 septembre 2006
25 sept. 2005 à 18:34
Salut,

Je n'ai pas réussi à modifier le CHMOD. J'utilise free, et on dirait que ca se gère automatiquement. Par contre j'ai enfin réussi à mettre mon fichier dans mon répertoire. J'ai utilisé la fonction copy(). Je n'ai pas réussi à faire fonctionner move_uploaded_file() ... et pourtant c'est presque la même chose. Enfin merci pour ton aide.

Viky
0
Free est un hebergeur particulier, malheureusement, il n'autorise pas la modification du CHMOD.
Si tu veux continuer, je te conseil de prendre un autre hébergeur.
0
Il est possible de modifier le CHMOD, via un logiciel comme Fizella. Je me connecte tout simplement à mon espace perso, et via le logiciel je change les droits pour mes différents répertoires. C'est une solution à réaliser "manuellement"

Vik
0
Tu veux parler de FileZilla ? Et bien même en modifiant les attributs, t'as une réponse du serveur disant que la commande CHMOD n'est pas connue.
Mais le problème ce n'est pas que le serveur ne veuille pas que le fichier écrive sur le serveur, c'est que le fichier envoyé est trop grand par rapport à la valeur de MAX FILE SIZE dans index.html.

En espérant que ça aide quelqu'un, désolé si ca fait chier que je remonte le topic :P
0