Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/02/2006, à 18:28

Cedouille

Upload de fichier

Bonjour,

J'ai suivi diférent tuto pour faire un script en PHP pour faire de l'upload de fichier, rien de plus simple a 1er vue. Mais impossible de le faire fonctionner en passant par Ubuntu via Firefox , IE , ou même Mozilla. Par contre en bootant sur mon vieux OS Windows et IE, la il fonctionne. Y a t'il un firewall ou x truc qui bloquerai Ubuntu pour faire de l'upload de fichier via HTTP : négatif j ai réussi sur le webmail de Free.
Je n'y comprends rien... Tout ce que je sais, c'est que le transfert ce fait mais a la fonction "move_uploaded_file" ça échoue. J'ai pourtant bien les droits 777 pour mon repertoire "photos".

Détail : du code PHP :

<?php
if(isset($_FILES['photo']))
{
  $dest_dossier = '/home/cedric/public_html/photos/';
  $dest_fichier = basename($_FILES['photo']['name']);
  move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
?>

<html>
<body>
<form method="POST" action="" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" /> 
<legend>Envoi de fichiers</legend>
<label>Photo :</label><input type="file" name="photo" />
<input type="submit" name="envoi" value="Envoyer les fichiers" />
</legend>
</form>
</body>
</html>

Donc si quelqu'un a rencontré ce même problème, pourra t-il me donner une solution.
Merci d'avance.

#2 Le 09/12/2006, à 19:39

bellansy

Re : Upload de fichier

salut!

bon moi aussi j'ai eu pas mal de tracas avec la gestion des fichiers (liste, upload, download...)
cela venait du fait que mon ubuntu était en utf8 et que le serveur apache était en ISO-XXXX.
Donc j'ai décidé de tout laisser en ISO (apache et les pages web), mais des que j'ai un acces aux fichiers, j'utilise les fonctions
   $path = utf8_encode($path);
   $file = utf8_encode($file);
pour l'upload

et
    $fichier = utf8_decode($fichier)
pour le listing.

A mixer avec du rawurldecode / rawurldecode si en plus tu passes des noms de fichiers en GET ou POST (pour le download par exemple)

Bref c'est un peu le bazar, mais avec un peu de rigueur ca a fini par marcher smile

#3 Le 09/12/2006, à 21:14

dexinou

Re : Upload de fichier

le serveur web doit pouvoir écrire dans le dossier 'photos':

chown -R nobody:cedric /home/cedric/public_html/photos/
chmod 2755 /home/cedric/public_html/photos/

ou

chown -R www-data:cedric /home/cedric/public_html/photos/

Dernière modification par dexinou (Le 12/12/2006, à 19:38)


Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...

Hors ligne

#4 Le 11/12/2006, à 16:59

XD

Re : Upload de fichier

Cedouille a écrit :
<form method="POST" action="" enctype="multipart/form-data">

Donc si quelqu'un a rencontré ce même problème, pourra t-il me donner une solution.
Merci d'avance.

Je comprends pas bien ton problème en fait...

Il faut que ton script appelle un autre script qui s'occupe de récupérer ce que tu envois. Ce script est appelé par action="script.php" et là ton action est vide.

Tu devrais aussi soit construire ton URL de sortie directement :

$urlSortie = $dossier.$fichier;

Soit vérifier (avec un echo) qu'il ne te manque pas un slash entre les deux, voir si ton chemin est bien valide quoi.

Dernière modification par XD (Le 11/12/2006, à 17:02)

Hors ligne

#5 Le 05/05/2007, à 22:32

needle

Re : Upload de fichier

J'avais le meme problème, enfin si j'ai bien compris ton problème et la 2eme solution de dexinou marche nikel ! Merci dexinouuuuuuuuu


Je suis ce que je suis grâce à ce que nous sommes tous.
Comité de lutte contre le langage sms et les fautes volontaires sur Internet

Hors ligne

#6 Le 06/05/2007, à 15:57

tarte en pion

Re : Upload de fichier

Mets le nom du script ici:
<form method="POST" action="ICIIII" enctype="multipart/form-data">

ça ira sans doute mieux! T'as pas spécifié la destination du script!

Hors ligne