Downloaden bestand via PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ben

Ben

05/07/2005 20:32:00
Quote Anchor link
Hallo ik heb de volgende code voor het downloaden van een bestand:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();?>


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
 
PHP hulp

PHP hulp

16/06/2024 15:08:42
 
Ben

Ben

05/07/2005 23:51:00
Quote Anchor link
Nieuwe code geeft wel aantal bytes weer maar ik krijg de broncode van de site in de file????

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
    }

?>


Hoe kan dit?? Alvast bedankt....
 

07/07/2005 14:46:00
Quote Anchor link
Waarschijnlijk moet je dit script los van het andere script zetten bv

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
 
Han eev

Han eev

07/07/2005 17:15:00
Quote Anchor link
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!
 
Ben

Ben

11/07/2005 18:52:00
Quote Anchor link
Als ik hem via een formulier in een blanco pagina laat laden dan doet ie het prima.....niet de mooiste oplossing maar wel functioneel....
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.