Salut,
Oui je connais la fonction readfile mais je voulais savoir comment pouvoir envoyer un fichier depuis un autre fichier que celui en cours (sans que celui ci sois inclut dans le fichier en cours)
Que signifie BOM ? De toute fasons je n'envoie vraiment rien au navigateurs avant les headers.
Pour la restriction des téléchargement je voit comment faire mais c'est pour la reprise de téléchargement (avec ) , car par exemple si cette requête est renvoyé plusieurs fois même si je limite la vitesse ( au lancement du téléchargement) l'utilisateur pourrait télécharger a plus que sa vitesse qu'il aurait le droit.
J'ai aussi un autre problème avec
header("Content-Type: application/force-download");
qui m'envoie aussi ma page html avec mon fichier txt que je télécharge.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| if (!empty($_POST['download']))
{
if (empty($_SERVER["HTTP_RANGE"]))
{
$temp_file = tempnam(sys_get_temp_dir(),"FOO");
if ($temp_file == FALSE)
{
exit();
}
$handle = fopen($temp_file,"w+");
// Ecriture
fwrite($handle, $pour_tab);
fclose($handle);
set_time_limit(0);
if (ini_get("zlib.output_compression"))
{
ini_set("zlib.output_compression", "Off");
}
session_write_close();
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0");
header("Cache-Control: max-age=0");
header('Content-Length: '.filesize($temp_file).'');
header('Content-MD5: '.base64_encode(md5_file($temp_file)));
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Type: application/force-download");
if (!empty($data['title']))
{
header('Content-Disposition: attachment; filename="'.$data['title'].'.txt"');
}
else
{
header('Content-Disposition: attachment; filename="'.$_GET['title'].'.txt"');
}
$s_dwn = "1";
// ouvre le fichier
$file = fopen($temp_file, "rb");
while(false != fread($file, $download_rate))
{
// envoie le fichier au navigateur
print fread($file, round($s_dwn * 1024));
sleep(1);
}
// (remplacer par readfile)
set_time_limit(30);
fclose($file);
unlink($temp_file);
}
else
{
$1 = 'erreur ...';
}
}
else
{
}
}
// Mon code HTML |
Merci.
Partager