Downloaden bestand via PHP
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_POST['submit'])){
$down=$_POST['download'];
$down2 = $upload_url.$down;
set_time_limit(0);
$fp = fopen($down2,"rb");
$content_len = (int) filesize($fp,$down2);
$content_file = fread($fp, $content_len);
fclose($fp);
header('Content-type: application/force-download');
header('Content-Transfer-Encoding: Binary');
header("Content-length: \"".$content_len."\"");
header("Content-disposition: attachment; filename=\"".basename($down2)."\"");
echo $content_file;
ob_end_flush();?>
if(isset($_POST['submit'])){
$down=$_POST['download'];
$down2 = $upload_url.$down;
set_time_limit(0);
$fp = fopen($down2,"rb");
$content_len = (int) filesize($fp,$down2);
$content_file = fread($fp, $content_len);
fclose($fp);
header('Content-type: application/force-download');
header('Content-Transfer-Encoding: Binary');
header("Content-length: \"".$content_len."\"");
header("Content-disposition: attachment; filename=\"".basename($down2)."\"");
echo $content_file;
ob_end_flush();?>
Alles lijkt prima te werken alleen geeft hij 0 kb aan bij het downloaden en zijn de files leeg. Namen en directories kloppen allemaal. Wat kan dit zijn?? Is er nog een andere mogelijkheid om te downloaden??
Groet
Gewijzigd op 05/07/2005 20:33:00 door Ben
Code (php)
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
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
<?php
if(isset($_POST['submit'])){
$down=$_POST['download'];
$down2 = $down;
@ignore_user_abort();
@set_time_limit(0);
//$attachment = (strstr($HTTP_USER_AGENT, "MSIE")) ? "" : " attachment"; // IE 5.5 fix.
//lees file in
//download the file
//header("Content-type: Application/force-download");
if (!headers_sent()){
//header("Pragma: ");
//header("Cache-Control: ");
//header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
//header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
//header("Cache-Control: post-check=0, pre-check=0", false);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: Binary");
header("Content-Disposition: attachment; filename=\"".(string)basename($down2)."\"");
header("Content-Description: ".(string)basename($down2));
header("Content-length: ".(string)(filesize($down2)));
header("Connection: close");
ob_get_contents();
sleep(1);
$file = fopen($down2, 'rb');
//fpassthru("$file");
readfile($file);
fclose($file);
}
?>
if(isset($_POST['submit'])){
$down=$_POST['download'];
$down2 = $down;
@ignore_user_abort();
@set_time_limit(0);
//$attachment = (strstr($HTTP_USER_AGENT, "MSIE")) ? "" : " attachment"; // IE 5.5 fix.
//lees file in
//download the file
//header("Content-type: Application/force-download");
if (!headers_sent()){
//header("Pragma: ");
//header("Cache-Control: ");
//header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
//header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
//header("Cache-Control: post-check=0, pre-check=0", false);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: Binary");
header("Content-Disposition: attachment; filename=\"".(string)basename($down2)."\"");
header("Content-Description: ".(string)basename($down2));
header("Content-length: ".(string)(filesize($down2)));
header("Connection: close");
ob_get_contents();
sleep(1);
$file = fopen($down2, 'rb');
//fpassthru("$file");
readfile($file);
fclose($file);
}
?>
Hoe kan dit?? Alvast bedankt....
zet bovenstaand script in download.php
en roep vanuit je andere script download.php?download=filenaam op deze mannier aan
haal met een $_GET[download] de filenaam op in download.php
Gr Edwin
je moet er wel voor zorgen dat iemand dan niet JOUW bestanden gaan donwloaden dus je moet Bijv. beveiligen Voor dat ze ../ of ./ gaan gebruiken!
Als ik hem via een formulier in een blanco pagina laat laden dan doet ie het prima.....niet de mooiste oplossing maar wel functioneel....