Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    problemi: function forceDownload

    ho scaricato la funzione presente sul sito di andr3a: http://www.devpro.it/php4_id_72.html


    è un'ottima funzione e l'ho sempre usata correttamente e non mi ha mai dato problemi...mai tranne questa volta...non capisco perché al posto di scaricare il file mi scrive a video il contenuto dello stesso.

    io richiamo semplicemente la funzione così:
    Codice PHP:
    $fileName=$report->ReportContattato($origine,$formID,$mese,$anno);
    //die($fileName);
    forceDownload($fileName); 
    ReportContatto è una funzione che mi scrive nel file che devo scaricare una determinata stringa...se va a buon fine mi restituisce il nome del file, ed infatti se io decommento il die ottengo il nome corretto, ad esempio: report-csv/ReportContattato_20061122.txt



    quindi perché passandolo poi alla funzione mi scrive a video il suo contenuto? : :master:




    sapete aiutarmi? Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    domanda banale, ma di debug... che succede se l'estensione del file fosse, anziché txt, data o altro (basta che non sia txt). Pura curiosità... anche se penso che la funzione di download dovrebbe funzionare comunque.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    quello non lo so e non me ne sono preoccupato, in quanto sul sito sta scritto:

    This function is usefull to download any kind of file and should resolve Internet Explorer name problem too.
    e quindi non dovrebbe comportare nessun tipo di problema. Ed infatti non mi spiego come mai stavolta non funzioni, l'ho usata ancora per scaricare file .csv .doc .pdf e funzionava benone...è solo ora che l'ho usata abbinata ad una mia funzione ( che però, come già detto, restituisce solo il nome del file ) e al posto di scaricare il file mi fa vedere il contenuto a video
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4

    Re: problemi: function forceDownload

    10 a 1 che prima di richiamare la forceDownload invii un header di qualunque tipo, che sia una scritta, uno spazio vuoto, un tag html, un qualunque altra cosa ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5

    Re: Re: problemi: function forceDownload

    Originariamente inviato da andr3a
    10 a 1 che prima di richiamare la forceDownload invii un header di qualunque tipo, che sia una scritta, uno spazio vuoto, un tag html, un qualunque altra cosa ...
    ho provato a fare un file solo così:
    Codice PHP:
    <?php
    require_once("functions.php");
    forceDownload("report-csv/ReportContattato_20061122.txt");
    ?>
    in functions.php ho solo la funzione forceDownload, ma il comportamento è lo stesso
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    [edit]
    ok ... visto che hai risolto ... ora dimmi, c'era qualcosa in output prima della funzione, giusto ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    ho provato per scrupolo con FF2 e ha funzionato al primo colpo, al ché ho provato a svuotare la cache di ExploDer e ora funziona anche con il browser fuffa...



    Grazie mille dell'attenzione & complimenti per la funzione!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    ora ho solo un piccolo problemino. Visto che il file da scaricare lo creo sul server solo nel momento in cui l'utente me lo richiede, dopo che l'ha scaricato come lo posso eliminare?

    io ho provato a piazzarci un unlink dopo il richiamo alla funzione, e anche dentro, ma come immaginavo non funziona, se lo metto nella funzione scarico normalmente il file e poi non lo cancella, se lo metto al di fuori non lo scarica neanche e mi dà pagina bianca...
    deduco che l'unlink non sia la soluzione più appropriata; idee di come lo posso fare diversamente?


    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    Originariamente inviato da andr3a
    [edit]
    ok ... visto che hai risolto ... ora dimmi, c'era qualcosa in output prima della funzione, giusto ?
    scusa ho visto ora che avevi modificato la risposta!

    comunque no, io non ho niente prima della funzione. il mio file php che si occupa di fare il download è semplicemente quello sotto

    Codice PHP:
    <?php
    require_once("loader.php");

    $fileName=$report->ReportContattato($origine,$formID,$mese,$anno);
    //die($fileName);
    forceDownload($fileName);
    ?>

    nel loader faccio l'include delle classi che mi servono e dichiaro le variabili necessarie, e la funzione ReportContattato si occupa solo di creare il txt, facendo diverse query ad un db.

    Ho messo l'error_reportin(E_ALL) per debug perché sul server è disabilitato...è considerato output?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Originariamente inviato da 13manuel84
    Ho messo l'error_reportin(E_ALL) per debug perché sul server è disabilitato...è considerato output?
    si, se ci sono degli errori nella pagina del download.

    Per il tuo problema di unlink ... io farei in altro modo.
    La generazione del file porterà via tempo e risorse, dato che si basa su date salverei i files in una cartella ed ogni mese farei un reset della cartella.

    In pratica:

    1 - l'utente chiede un download
    2 - se il file non è presente nella cartelle lo creo e lo salvo nella cartella
    3 - parte il download del file creato o già presente in questa cartella

    Ogni primo giorno del mese, se il file "reset.txt" della cartella contiene una data diversa dal primo del mese cancelli tutta la cartella e crei il file reset.txt con la data del primo del mese.

    In questo modo il server resta pulito nel tempo, le operazioni di creazione documenti non si duplicano tutti giorni, massimo si fanno una volta al mese ... non hai problemi di altro tipo.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.