Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Download file

  1. #1

    Download file

    Ciao ragazzi,
    ho una serie di file da far scaricare all'utente, in diversi formati: pdf, doc, xls ecc.. Però quando clicca sul file non voglio che mi si apra una finestra di explorer con il file aperto, ma la classica finestra APRI/SALVA...

    Come si fa??

    Grazieeee

  2. #2
    codice:
    Preso PARO-PARO dal sito PHP.net che consiglio vivamente di visitare ancor prima di fare una ricerca in questo forum :)
    
    <?php
    // We'll be outputting a PDF
    header('Content-type: application/pdf');
    
    // It will be called downloaded.pdf
    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    
    // The PDF source is in original.pdf
    readfile('original.pdf');
    ?>
    wip.. http://www.virgolamobile.net

  3. #3
    Ho provato, ma mi salva un file da 0 byte, come mai?

  4. #4
    fai delle prove per vedere che il flusso di dati che vuoi inviare con content-type di un certo tipo esistano.
    Prova un is_empty($output) per vedere se il tuo output esiste o no (in tal caso hai un problema da qualche parte).
    Al max fai una prova del genere.

    <?php
    $output="foooooooooooooooooooo";
    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    echo $output;
    ?>

    A questo punto il file deve essere un pdf ovviamente non funzionante, ma di byte tanti quanto il tuo foooo..
    wip.. http://www.virgolamobile.net

  5. #5
    Così funziona, ma forse sbaglio io. Non posso passargli come $output un file pdf??

  6. #6
    Ti posto il codice e dimmi se è corretto:

    la pagina è download.php e la raggiungo attraverso un form metodo post ok?

    Quando clicco il pulsante scarica, mi si apre la finestra apri o salva, ma se salvo mi dà 0 byte. Il codice della pagina dowload.php è il seguente:

    <?php
    $output="../documenti/".$_POST['pdf'];
    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    ?>

    $_POST['pdf'] sarebbe il nome del file che prelevo dal database.

    Grazie ciaoo

  7. #7
    Dhe, se il tuo $output è un pdf funzionante, dagli il content-type corretto e spara fuori la stringa!
    Alla fine devi avere questa sequenza:

    0) nessun output prima di questo punto
    1) definisci il content-type con header(...)
    2) specifica che è un attachment e che nome ha con la funzione header(...)
    3) sputa fuori un $output valido rispetto al tuo content-type e che non sia vuoto.
    4) ?>


    Lo fai con le immagini, col testo, con la marmellata ed anche, nel tuo caso, con i pdf.
    Se qualcosa non funziona, ricorda, è sempre colpa tua!
    wip.. http://www.virgolamobile.net

  8. #8
    Prima che venga a prenderti a sberle scrivi questo:

    codice:
    <?php
    $output="../documenti/".$_POST['pdf'];
    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    
    echo $output;
    
    ?>
    wip.. http://www.virgolamobile.net

  9. #9
    usa questa funzione, passandogli come parametro il path completo del file che devi far scaricare:
    http://www.codeflower.com/index.php?a=showCode&id=29

  10. #10
    Ok Bolas ok..così mi crea un file da 1KB, mentre quello originale che gli passo è da 70KB. Infatti se poi lo salvo e ci faccio doppio click mi scrive: "Acrobat non è in grado di aprire il file perchè è un tipo di file non supportato o è danneggiato.
    Però l'originale me lo apre perfettamente se lo passo come a href.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.