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

    Problemi per forzare il download

    Ho scaricato vari script per effettuare ciò, ma tutti mi restituiscono il medesimo errore:

    Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\stream\download.php:19) in c:\programmi\easyphp1-8\www\stream\download.php on line 19


    Questo è il codice del file download.php:


    <?php
    $filename = ( isset($_GET['file']) ) ? $_GET['file'] : '';
    $folder = ( isset($_GET['folder']) ) ? $_GET['folder'] : '';
    if ( $filename && $folder )// make sure there's data in them
    {
    $file_info = basename($filename);
    $file_info = explode(".", $file_info);
    $extension = $file_info[1];
    // notice here, you can't insert a different url to add scripts since you always are adding / before anything gotten from the query string. There's many, and better, ways, to protect yourself, but this one works fine, and is simple.
    $filename = 'http://www.ifeeder.net/' . $folder . '/' . $filename;
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/" . $extension );
    header("Content-Type: application/download");
    header("Content-Disposition: attachment; filename=".basename($filename).";");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename));

    readfile("$filename");

    exit();
    }
    ?>




    Come risolvo???
    Grazie
    Earn money for searching the internet:
    Homepages Friends

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    121
    Quando invii degli header con php devi fare attenzione che prima dell'apertura del tag <?php non ci sia nessun output, neanche uno spazio! Fai questo controllo..

  3. #3
    Io ho un file .php che inizia subito con l'apertura di quel tag! Quindi prima del tag non ci sono spazi!!!
    Earn money for searching the internet:
    Homepages Friends

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    121
    guarda quel messaggio dice chiaramente che sono stati mandati automaticamente degli header prima che tu tentassi di impostarli manualmente, infatti se tu copi il tuo codice togliendo la if funziona, sei sicuro che lo script non sia incluso in qualche altro file che manda un qualsiasi output (compreso il discorso degli spazi)?

  5. #5
    Adesso ho ricopiato il codice stando attento agli spazi e il messaggio non appare più!

    Però non va. Io scrivo sulla barra il seguente indirizzo:

    http://www.miosito.com/download.php?...er=unacartella

    Sbaglio qualcosa??? perchè mi dice

    filesize(): Stat failed for http://www.ifeeder.net/media/Smiley - HOMH.wmv (errno=2 - No such file or directory) in /home/www/ana4ever-vids.awardspace.com/download.php on line 18


    Non è che questo script mi funzia solo coi miei files? perchè il file è su un altro server....
    Earn money for searching the internet:
    Homepages Friends

  6. #6
    up
    Earn money for searching the internet:
    Homepages Friends

  7. #7
    Originariamente inviato da ana4ever-vids
    Non è che questo script mi funzia solo coi miei files? perchè il file è su un altro server....
    come se sul mio PC scrivessi dir www.html.it/*.* per avere la lista dei file sul server di html.it ... insomma, filesize ovviamente è una funzione che lavora con i files del server e non su HTTP, se non per il peso di un apagina HTML, mica del file dell'altro sito ...


    mandali direttamente all'altro sito, sempre che tu abbia l'autorizzazione, invece di usare un download dal tuo in questo modo errato
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    filesize() può essere utilizzato con lacuni URL wrappers solo dalal versione 5 in poi, le altre funzioni invece le puoi usare anche con gli urlwrappers, per risolvere il problema potresti provare a togliere
    header("Content-Length: ".filesize($filename));
    (ma poi potrestia avere problemi di compatibilità con alcuni browser) oppure puoi sostituire la funzione filesize() con le dimesioni in byte del file

    edit
    battuto sul tempo...

  9. #9
    Il servizio di hosting mi permette di fare una cosa del genere. Loro permettono il link diretto ai files da loro hostati (ho già scritto un'e-mail al centro assistenza). E' che io, disabilitando il tasto destro del mouse, vorrei che i miei utenti scarichino il file.


    Forse potrei azzardare una cosa del genere:

    AGG. LA VARIABILE:
    Codice PHP:
    $folder = ( isset($_GET['byte']) ) ? $_GET['byte'] : ''
    e poi modifico l'header
    Codice PHP:
    header("Content-Length: "$byte); 
    (come suggerito da SoulHome)



    Che ve ne pare???



    P.S: [non ho mai scritto nemmeno una riga di php, quindi se è giusto al primo colpo sta sera mi sbronzo!!]
    Earn money for searching the internet:
    Homepages Friends

  10. #10
    vedi se con questa risolvi http://www.devpro.it/php4_id_72.html
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.