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

Direct "Bestand opslaan als.."

None
8 antwoorden
  • Ik wil d.m.v. een link o.i.d. de mogelijk aan de gebruiker bieden een html-bestand op te slaan, zonder dat hij/zij rechts hoeft te klikken.
    Dus dat er bij het klikken op de link direct de vraag komt "bestand opslaan als".
    Ik heb de beschikking over ASP, PHP enz.
    Met exe en zip bestanden heb ik het wel voor elkaar, maar een htm-bestand wordt 'gewoon' door de browser geopend.

    Iemand een idee ?
  • Probeer eens de Content-Type en de Content-Disposition in te stellen.

    Bijvoorbeeld (ASP):
    [code:1:a094ae4e74]
    <%
    response.addHeader "Content-Disposition", "attachment; filename=bla.html"
    response.ContentType = "application/octet-stream" ' of application/x-download
    %>
    [/code:1:a094ae4e74]
  • Met die content-type en disposition was ik reeds aan de gang geweest.
    De truuk was (voor mijn geval) "octet/stream"
    Uiteindelijk resultaat voor eenieder met soortgelijk probleem:
    [code:1:26c8a179ac]<?
    $Result = "hierin dus de output";

    Header("Content-Type: application/octet-stream");
    Header("Accept-Ranges: bytes");
    Header("Content-Disposition: attachment; filename=slanuopals.htm");
    /
    eadfile("uiteenbestaandefile.htm");
    echo $Result;

    ?>[/code:1:26c8a179ac]
    Mijn bedoeling was dus om een deel van de HTML-pagina welke ik al op het scherm plaatste ook als bestand aan de gebruiker te bieden.
    Klein nadeeltje is dat er in het opslaan-scherm de naam van de PHP-pagina verschijnt die bovenstaande moet uitvoeren. Voordeel is dat de voorgestelde filename netjes wordt overgenomen.
  • kijk hier eens: http://www.eprogrammeur.nl/topic/18791/8f89f1a449b097ef08eb4ace340b0d40


    [code:1:20e8ad9faa]

    <?php
    if( isset($_GET['bestand'] ) {
    //Hier kan je eventueel nog controles plaatsen, of een query oid. uitvoeren
    //Plaats hier zeker geen output !
    $bestand = "pad/naar/download/directory/" . $_GET['bestand'];
    if( file_exists($bestand) ) {
    header("Content-type: application/force-download"); //moet eigenlijk octet-stream zijn maar door bugs in IE neem je best force-download of een ander onbekend document-type
    header("Content-Disposition: attachment; filename=" . $bestand);
    @readfile($bestand);
    }
    }
    ?>

    [/code:1:20e8ad9faa]
  • [quote:8c41536644="Timonsweb"]…[/quote:8c41536644]
    mosterd na maaltijd :wink:
  • [quote:7257970845="Annie"][quote:7257970845="Timonsweb"]…[/quote:7257970845]
    mosterd na maaltijd :wink:[/quote:7257970845]

    niet helemaal, deze link behandelt ook de bug in IE 8)
  • [quote:a7bd92d44c]niet helemaal, deze link behandelt ook de bug in IE [/quote:a7bd92d44c]

    'k heb net die pagina bekeken, maar zie nix over de genoemde bug.
    Of je moet ASP als bug zien, want daar vullen die grappenmakers zo'n beetje het hele topic mee.

    Thanx anyway
  • [quote:5afe0e5231="Financial"]
    'k heb net die pagina bekeken, maar zie nix over de genoemde bug.
    Of je moet ASP als bug zien, want daar vullen die grappenmakers zo'n beetje het hele topic mee.
    Thanx anyway[/quote:5afe0e5231]

    De link die ik eerst gaf was eigenlijk de uitkomst van deze topic
    http://www.eprogrammeur.nl/showthread.php?s=4023a4cd1fee03e94f6dcc5b1bc262fd&threadid=18648&highlight=download

    In die 'FAQ' - topic beginnen ze offtopic over ASP te reutelen, dat had er ff niks mee te maken. In de link in deze post wordt het wel besproken.

    Maar goed, wat dan ook, het werkt al. :roll:

Beantwoord deze vraag

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