graymi

Inscris le 02/05/2011 à 19:28
  • Nombre de sujets
    1
  • Nombre de messages
    1
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
graymi
le 02/05/2011 à 19:29
Erreur de telechargement de fichier
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();
}

?>

Ses derniers messages sur les forums

forum
graymi
le 02/05/2011 à 19:29
Erreur de telechargement de fichier
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();
}

?>

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours