Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

bij klik downloaden ipv openen

None
3 antwoorden
  • Hey Allemaal,

    Ik loop nu voor de zoveelste keer tegen het volgende aan: Ik wil dat als een gebruiker op mijn website klikt op een link naar een pdf bestand dat het pdf bestand zich niet gaat openen, maar dat de browser een downloadschermpje geeft, met de mogelijkheid om (dus) op te slaan. Weet iemand misschien hoe ik dit voor elkaar kan krijgen? Want het geGoogle heeft nog niet veel opgeleverd :-(.

    (en ik weet wel dat ik het in kan zippen, en dat hij het dan wel geeft, maar dat wil ik niet, ik wil het niet inzippen)

    Mzzl,
    Bob!
  • Ik denk dan aan mime types (application/octet-stream of *foei* application/force-download; voor IE…).
    Staat wel iets hier:
    http://elouai.com/force-download.php

    t.
  • Bedankt teacher,

    Ik heb dat script eens even in een pagina gezet en toegepast, en het éne probleem is nu opgelost. Maar nu loop ik bij het testen tegen het volgende probleem aan:
    Dit is namelijk wat ik heb, hij geeft mbv een ander php-script weer wat er allemaal in de map staat (behalve de index.php etc) en als ik op de bestandsnaam klik dan geeft hij inderdaad het download schermpje, en het downloaden gaat perfect! Maar nu wil ik het bestand dat op mijn computer staat openen, maar dat werkt niet :-(! Ook met andere bestandstypen dan .pdf doet hij het niet :-(. Weet iemand waar dit aan ligt en hoe ik het kan oplossen?

    De (php)broncode van het php script:
    [code:1:fa6997a827]
    <?php

    echo("<table>
    ");
    if ($handle = opendir("../test")) {
    while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != ".." && $file != "index.php") {
    echo "<tr><td><a href=\"?file=".$file."\">".$file."</a></td></tr>
    ";
    }
    }
    closedir($handle);
    }
    echo("</table>

    </div>

    </body>


    </html>");

    $filename = $_GET['file'];

    // addition by Jorg Weske
    $file_extension = strtolower(substr(strrchr($filename,"."),1));

    if( $filename == "" )
    {
    echo "<html><title>eLouai's Download Script</title><body>ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</body></html>";
    exit;
    } elseif ( ! file_exists( $filename ) )
    {
    echo "<html><title>eLouai's Download Script</title><body>ERROR: File not found. USE force-download.php?file=filepath</body></html>";
    exit;
    };
    switch( $file_extension )
    {
    case "pdf": $ctype="application/pdf"; break;
    case "exe": $ctype="application/octet-stream"; break;
    case "zip": $ctype="application/zip"; break;
    case "doc": $ctype="application/msword"; break;
    case "xls": $ctype="application/vnd.ms-excel"; break;
    case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
    case "gif": $ctype="image/gif"; break;
    case "png": $ctype="image/png"; break;
    case "jpeg":
    case "jpg": $ctype="image/jpg"; break;
    default: $ctype="application/force-download";
    }
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Type: $ctype");
    header("Content-Disposition: attachment; filename=".basename($filename).";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename));
    readfile("$filename");
    exit();

    ?>
    [/code:1:fa6997a827]
    Alvast bedankt,
    Bob!

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.