Jump to content
WebFrance
  • Rejoignez WebFrance

    Inscrivez vous aujourd'hui et recevez le Guide gratuit du e-Business

     

Php - Erreur de telechargement forcer


Recommended Posts

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

<?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();

   }


?>

Link to comment
Share on other sites
Partagez cette page :

>> Nouveau : Découvrez la marketplace d'Achat / Vente de Sites !

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share



© WebFrance - Contact - Annonceurs - Conditions générales - Legal

×
×
  • Create New...