Forcer le téléchargement de gros fichier

Fermé
Truoris Messages postés 17 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 1 février 2010 - 14 janv. 2010 à 20:21
Truoris Messages postés 17 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 1 février 2010 - 26 janv. 2010 à 15:20
Salutations,

Je voudrait pouvoir télécharger des fichiers jusqu'à 300Mo avec mon code. Mais, quand j'essai de download un fichier de 169Mo cela me met le message d'erreur suivant :
Allowed memory size of 134217728 bytes exhausted (tried to allocate 177336321 bytes) ... on line 13.

Voici mon code :
<?php
$fichier = $_GET['nom'];
$chemin = $fichier;
if (file_exists($chemin))
{
header('Content-disposition: attachment; filename="' . $fichier . '"');
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. filesize($chemin));
header('Pragma: no-cache');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($chemin);
}
else
{
$erreurFichier = 'le fichier ' . $fichier . ' n\'existe pas. Veuillez-nous excusez pour le désagrément.';
echo $erreurFichier;
}
?>

Quelques infos :
- Je travail en local (wamp)
- J'utilise IE
- ma variable $_GET['nom'] contient le nom du fichier à download (qui se trouve dans le même dossier que la page de download donc, $chemin = $nom je me trompe pas?)

Voilà, ce code ne marche, auriez vous des conseils à me donner pour qu'il fonctionne.

Merci d'avance,
Truoris
A voir également:

4 réponses

graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 973
14 janv. 2010 à 20:23
ca fait environ 128mo = 134217728 bytes

Ca doit venir de ton serveur.
0
Truoris Messages postés 17 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 1 février 2010 2
14 janv. 2010 à 20:24
Je travail en local sur mon ordi avec Wamp Server et j'ai 100Go de libre sur mon disque.
0
C'est un problème de config d'Apache.

Il faut augmenter cette valeur. Le problème est que readfile charge tout en mémoire vive,
donc ca rame...

Il faut passer par une autre fonction : fpassthru()

cherche sur le net sur cette fonction php.

Grag
0
Truoris Messages postés 17 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 1 février 2010 2
26 janv. 2010 à 15:20
Mercibeaucoup de ta réponse,
je vais allé voir ça.
0