[PHP]probleme pour le telechargement
Résolu
louisss13
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
louisss13 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
louisss13 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjours tout le monde :p
J'ai un petit problème ... j'essaye de faire un système qui permet d'uploader des fichier pour ensuite les mettre en téléchargement sur une autre page. Le système d'upload a l'air de fonctionner correctement (le fichier se retrouve bien sur le ftp avec une bonne taille de fichier). Par contre quand je veut lire le fichier,après un très long chargement, il me propose bien de le télécharger mais me télécharge un fichier "cassé" (j'ai ouvert l'original et le télécharger sur notepad et le fichier télécharger a le même début mais n'a pas du tout la fin ...).
Le téléchargement et l'upload fonctionne parfaitement en local. Et mon hébergeur permet le download et l'upload.
Voici le code pour la lecture
merci d'avance pour votre aide :p
J'ai un petit problème ... j'essaye de faire un système qui permet d'uploader des fichier pour ensuite les mettre en téléchargement sur une autre page. Le système d'upload a l'air de fonctionner correctement (le fichier se retrouve bien sur le ftp avec une bonne taille de fichier). Par contre quand je veut lire le fichier,après un très long chargement, il me propose bien de le télécharger mais me télécharge un fichier "cassé" (j'ai ouvert l'original et le télécharger sur notepad et le fichier télécharger a le même début mais n'a pas du tout la fin ...).
Le téléchargement et l'upload fonctionne parfaitement en local. Et mon hébergeur permet le download et l'upload.
Voici le code pour la lecture
<?php /* TELECHARGEMENTS.PHP */ session_start(); function sel_fichier() { include("includes/identifiants.php"); mysql_connect($adresse, $nom, $motdepasse); mysql_select_db($database); mysql_query('set names utf8'); $fichier_en_telechargement_sql = mysql_query('SELECT * FROM telechargements WHERE tel_id='.intval($_GET['file']))or die(mysql_error()); $fichier_en_telechargement = mysql_fetch_array($fichier_en_telechargement_sql); mysql_close(); $nom = intval($fichier_en_telechargement['tel_id']) ; $ext = stripslashes(htmlspecialchars($fichier_en_telechargement['tel_extension'])) ; $taille = stripslashes(htmlspecialchars($fichier_en_telechargement['taille'])) ; $chemin = htmlspecialchars($fichier_en_telechargement['tel_chemin']); $nom_reel = stripslashes(htmlspecialchars($fichier_en_telechargement['tel_nom_fichier'])); $type = stripslashes(htmlspecialchars($fichier_en_telechargement['tel_type'])); header('Content-Type: '.$type); header('Content-Transfer-Encoding: binary'); //Transfert en binaire (fichier) header('Content-Disposition: attachment; filename="'.$nom_reel.'.'.$ext.'"'); //Nom du fichier header('Content-Length: '.$taille); //Taille du fichier //Envoi du fichier dont le chemin est passé en paramètre $chemin = dirname(__FILE__).'/telechargements/'.$nom; readfile($chemin); } function affichage_tout_fichier() { echo '<h1>Tous les téléchargements.</h1>'; if($_SESSION['users_level']==5) echo'<a href="Admin_upload.php">Ajouter un fichier à la liste</a>'; $fichiers_sql = mysql_query('SELECT * FROM telechargements ORDER BY tel_nom_fichier')or die(mysql_error()); $i=0; echo'<div class="telechargement">'; echo'<table class ="tableau_forum ">'; while($fichiers = mysql_fetch_array($fichiers_sql)) { echo'<tr>'; echo '<td>- <a href="telechargements.php?file='.intval($fichiers['tel_id']).'">'.$fichiers['tel_nom_fichier'].'</a></td>'; echo '<td><a href="telechargements.php?file='.intval($fichiers['tel_id']).'">( Fichier '.$fichiers['tel_extension'].' de '.$fichiers['tel_taille'].' octets)</a></td>'; $i++; echo'</tr>'; } echo'</table>'; if($i==0) echo'Il n\'y a aucun fichier à télécharger<br/><br/><br/>'; echo'</div>'; if($_SESSION['users_level']==5) echo'<a href="Admin_upload.php">Ajouter un fichier à la liste</a>'; } if(isset($_GET['file'])) sel_fichier(); else { include("includes/haut.php"); affichage_tout_fichier(); include("includes/bas.php"); } ?>
merci d'avance pour votre aide :p
A voir également:
- [PHP]probleme pour le telechargement
- Telechargement direct - Accueil - Outils
- Telecharger downloader pour pc - Télécharger - Téléchargement & Transfert
- Dark world telechargement - Guide
- Téléchargement - Télécharger - Compression & Décompression
- Telechargement - Télécharger - Traitement de texte
4 réponses
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
extrait de https://www.php.net/readfile
Si tu rajoutes ob_clean(); et flush();, ça améliore quelquechose?
ob_clean();
flush();
readfile($file);
extrait de https://www.php.net/readfile
Si tu rajoutes ob_clean(); et flush();, ça améliore quelquechose?