Erreur de telechargement de fichier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur de telechargement de fichier

Re: Erreur de telechargement de fichier

par @rthur » 04 mai 2011, 10:19

Modération :
Jeremielebulgare, le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règles du forum.

Re: Erreur de telechargement de fichier

par moogli » 03 mai 2011, 13:07

va falloir que tu affiche les valeurs retourné par la requête, utilise file_exist pour savoir si le fichier que cherche a envoyer existe physiquement sur le disque.

le code en lui est "correct" peut être a tu un problème dans le nom du fichier (chemin compris) ?

pour vérifier les infos fournit un var_dump($donnees) dans le while (qui d’ailleurs est inutile puisque tu ne doit avoir qu'un seul fichier par id ;) ).


@+

Re: Erreur de telechargement de fichier

par macgawel » 03 mai 2011, 11:45

Bonjour, j'ai voulu creer un petit blog ou on a la possibilite de poster des fichiers, qui seront ensuite telechargeable par les autre utilisateurs.

Mon soucis est que lors du telechargement du fichier, le fichier telecharger n'aura pas la bonne taille.

Par exemple j'ai fait le test avec un pdf qui fesait 48ko, et quand on le telecharge, il ne fait plus que 1.4ko.
Bonjour.

- Tu as pensé à ouvrir ton fichier avec un éditeur de texte ?
- Tu as vérifié que le fichier est bien dans le répertoire uploads/ ?

Re: Erreur de telechargement de fichier

par Jeremielebulgare » 03 mai 2011, 09:36

Effectivement j'ai tester le code sans les headers, il n'y a aucune erreur, voila ma table telechargement:

Code : Tout sélectionner

-- Base de données: `test` -- -- -------------------------------------------------------- -- -- Structure de la table `telechargement` -- CREATE TABLE IF NOT EXISTS `telechargement` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nom_fichier` varchar(255) NOT NULL, `nom` varchar(255) NOT NULL, `titre` varchar(255) NOT NULL, `taille` int(11) NOT NULL, `extension` varchar(255) NOT NULL, `date_fichier` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ; -- -- Contenu de la table `telechargement` -- INSERT INTO `telechargement` (`id`, `nom_fichier`, `nom`, `titre`, `taille`, `extension`, `date_fichier`) VALUES (5, 'Rezultati ot izpit na 14.12.2010.pdf', '0c5fbf83fcd72799983ab7156a9d8ef2', 'cinquieme', 47892, 'pdf', '2011-05-02 13:11:51'), (6, '10050Borislav.gif', '3a2f1bb30861ef88d9783a20302871ef', 'photo', 33390, 'gif', '2011-05-02 16:43:18'), (7, 'new_releases_bg.gif', '26173e070ef127bb32c197b3802a175d', 'Titre...yuef', 154, 'gif', '2011-05-02 19:15:03');

Re: Erreur de telechargement de fichier

par moogli » 03 mai 2011, 00:16

salut,

j’ajoute qu'après test ton code fonctionne, peux tu fournir le code d'insertion dans la table ? (et le create table de la table telechargement).


@+

Re: Erreur de telechargement de fichier

par Genova » 02 mai 2011, 23:34

Tu as probablement une erreur PHP, met en commentaire les header() et affiche ta page pour débug.

Erreur de telechargement de fichier

par Jeremielebulgare » 02 mai 2011, 19:31

Bonjour, j'ai voulu creer un petit blog ou on a la possibilite de poster des fichiers, qui seront ensuite telechargeable par les autre utilisateurs.

Mon soucis est que lors du telechargement du fichier, le fichier telecharger n'aura pas la bonne taille.

Par exemple j'ai fait le test avec un pdf qui fesait 48ko, et quand on le telecharge, il ne fait plus que 1.4ko.

Voici mon code pour telecharger un fichier

Code : Tout sélectionner

<?php if (isset($_GET['id'])) { try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $requete_fichier = $bdd->prepare('SELECT * FROM telechargement WHERE id = :id'); $requete_fichier->execute(array( 'id' => $_GET['id'] ) ); while ($donnees = $requete_fichier->fetch()) { $nom_fichier = $donnees['nom_fichier']; $nom_crypte = $donnees['nom']; $taille = $donnees['taille']; $extension = $donnees['extension']; $nom_absolu = 'uploads/'.$nom_crypte.''; $nom_fichier_crypte_avec_extension = $nom_absolu . $extension; } switch( $extension ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; case "mp3": $ctype="audio/mpeg"; break; case "wav": $ctype="audio/x-wav"; break; case "mpeg": case "mpg": case "mpe": $ctype="video/mpeg"; break; case "mov": $ctype="video/quicktime"; break; case "avi": $ctype="video/x-msvideo"; break; } //Création des headers, pour indiquer au navigateur qu'il s'agit d'un fichier à télécharger header("Content-Transfer-Encoding: binary"); //Transfert en binaire (fichier) header("Content-Length: $taille"); //Taille du fichier header("Content-type: $ctype"); header("Content-Disposition: attachment; filename= $nom_fichier"); //Nom du fichier //Envoi du fichier dont le chemin est passé en paramètre readfile($nom_fichier_crypte_avec_extension); $requete_fichier->closeCursor(); } ?>