Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    forzare download e allow_url_fopen=0

    ciao a tutti.
    ho messo su un sito dei pdf scaricabili (documenti di vario genere) che, per la maggior parte, vengono presi da altri siti.

    ho creato questo semplice script per scaricare i pdf

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

    $url $_DOWNLOAD[$_GET['id']];
    $file file_get_contents($url);

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false);
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=\"".basename($url)."\";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".strlen($file));

    echo 
    $file;

    exit();

    ?>
    che funziona bene in locale, ma non online, perché il servizio blocca file_get_contents per file con http:// davanti.

    mi chiedo c'è un modo per aggirare l'ostacolo? Ho provato con curl, ma credo che non si possa fare molto...

    suggerimenti?
    Scaricare tutti i pdf non è una buona idea, vista che potrebbero variare con il tempo.
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  2. #2
    I file sono sullo stesso server dove c'è lo script che hai messo?
    Se sì, anzichè fare l'open direttamente dal protocollo devi farlo in altro modo, cioè recuperando il percorso del file dal file system...


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    Originariamente inviato da Dascos
    I file sono sullo stesso server dove c'è lo script che hai messo?
    Se s anzichè fare l'open direttamente dal protocollo devi farlo in altro modo, cioè recuperando il percorso del file dal file system...

    se fosse stato cm dici tu , non avrei postato:-)
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Alcuni server bloccano il download di contnuti corss server, per cui devi controllare bene come e' impostato.

    Eventualmente si devi provare con curl.

  5. #5
    Ciao,
    beh non si sa mai, di cose fatte a capocchia ne ho viste tante che ormai chiedo

    Vedi se per caso puoi usare shell_exec o simili (non credo proprio, ma non si sa mai!). Nel caso usa wget tramite shell_exec e simili...altrimenti curl


  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Mi sa che gli convienen inxiare con curl ma SOLO dopo aver controllato la condifurazione del server , basta anche un path sbagliato ...

    Pova a fare una file_get_contents($url) con $url un indirizzo che sei sicuro al 100% erre funzionante.

    Attenzione che molti server bloccano tramite htaccess il dopwnload da altri servers...
    Per questo curl ti aiouta perche' puoi orgiare uno user agent... MA ! ATTENZIONE : a non violare le regole del copyright del sito da cui scarichi il materiale. Non e' una cose sempre consentita.

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.