Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Download immagine da url specificato all'interno di una cartella definita

    Buonasera a tutti...
    mi ripropongo per chiedervi la soluzione di una problemino

    Sto realizzando uno script semplice semplice che mi dovrebbe consentire di fare il download di una immagine di cui possiedo l'URL direttamente sul pc ovviamente posizionandola su una cartella da ne specificata.
    Già anticipo che, essendo alle prime armi, con qualche difficoltò, sul web ho individuato parti di script mettendoli insieme e caricati su uno spazio web di altervista.
    Il risultato è che mi scarica l'immagine sul web server senza dargli alcuna dimensione...quindi neanche leggibile...

    ...ma io la voglio sul mio pc!!!
    Ho capito che sicuramente sbaglio nell'indicare la destinazione ma ho provato di tutto.

    Di seguito riporto il mio lavoro:

    <?php
    if (isset($_POST[dom])){
    $root=str_replace($_SERVER["PHP_SELF"],"",$_SERVER["SCRIPT_FILENAME"]);//gia' presente all'inizio
    $my_save="C:\Documents and Settings\Administrator\Desktop\IMACROS";//scrivere qui la directory, con permessi 775, in cui intendiamo salvare le immagini
    function get_data($url)
    {//preleva la pagina web data da $url
    $ch = curl_init();//inizializza una nuova sessione e restituisce l'handle $ch
    $timeout = 10;//5
    curl_setopt($ch,CURLOPT_URL,$url);//$url e' l'URL che si desidera far salvare da PHP
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//con 1 per ottenere il trasferimento invece di stamparlo.
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);//fissa il timeout
    $data = curl_exec($ch);//acqisisce il contenuto di URL in $data
    curl_close($ch);//termina la sessione curl
    return $data;//resituisce il contenuto di URL
    }
    echo "<h1>Elenco Immagini salvate in directory target</h1>";
    $dom = $_POST[dom];
    $ste = parse_url($dom);//acquisisce parti URL in array $ste
    $sito = "http://".$ste[host];//acquisisce hostname dell'URL in $sito
    $source=get_data($dom);//legge il contenuto della pagina Web
    $doc = new DOMDocument;//alloca lo spazio per contenere un documento
    $doc->loadHTML($source);//carica il documento $source
    $xpath = new DOMXPath($doc);//inizializza la funzione query per processare il documento $doc
    $nodo = $xpath->query('//img[@src]');//seleziona i tag img
    $n=0;

    foreach ($nodo as $nodo){
    $n++;
    $imgsrc = $nodo->getAttribute('src');//aquisisce valore di src nel tag img
    $ste=parse_url("$imgsrc");
    $hostsrc=$ste[host];
    //echo "$imgsrc ";
    if(empty($hostsrc)){//se non inizia col nome host del sito forma il corretto URL
    if(substr($imgsrc,0,2) == "./"){
    $imgsrc=$sito.substr($imgsrc,1);
    //echo "trasformo in $imgsrc";
    }
    else if (substr($imgsrc,0,1) == "/"){
    $imgsrc="$sito$imgsrc";
    //echo "trasformo in $imgsrc";
    }
    else{
    $imgsrc="$sito/$imgsrc";
    //echo "trasformo in $imgsrc";
    }
    }
    $nome_file=urlencode(basename("$imgsrc"));
    $file_target=$my_save.$nome_file;
    $target=$root.$file_target;
    $size = getimagesize($imgsrc);//prende info immagine
    $X = $size[0]; //larghezza immagine

    $Y = $size[1]; //altezza immagine

    $file_type= $size['mime'];//tipo di immagine
    if("$file_type" == "image/pjpeg" || "$file_type" == "image/jpeg"){
    $img=imagecreatefromjpeg($imgsrc);
    $file_target=$file_target.".jpg";
    imagejpeg ($img, $target.".jpg",100);// 100 stabilisce la max qualita' dell'immagine, 75 e' un buon compromesso tra qualita' e occupazione spazio
    }
    else if("$file_type" == "image/x-png" || "$file_type" == "image/png"){
    $img=imagecreatefrompng($imgsrc);
    $file_target=$file_target.".png";
    imagealphablending($img, false);
    imagesavealpha ($img, true);//imagealphablending e imagesavealpha per mantenere la trasparenza delle png
    imagepng ($img, $target.".png",0);//livello di compressione variabile da 0 (nessuna compressione) a 9 (max compressione)
    }
    else if("$file_type" == "image/gif"){
    $img=imagecreatefromgif($imgsrc);
    $file_target=$file_target.".gif";
    imagegif ($img,$target.".gif");
    }
    echo "<img src=\"$file_target\" alt=\"$nome_file\" title=\"$nome_file\" border=\"1\"> ";
    imagedestroy($img);

    }
    echo "<hr>";
    }
    ?>
    <h3>Per acquisire immagini da una pagina Web e salvarle in una propria Directory</h3>
    <form name="form1" method="post" action="" >
    Nome completo della pagina Web: <input type="text" name="dom" value="http://">
    <input type="submit" value="Invia">
    </form>


    Questo è tutto...
    attendo consigli e istruzioni per risolvere questo problema ma soprattutto accetto consigli per rendere più facile i miei studi sul php...
    Ringrazio in anticipo chi vorrò aiutarmi.

    Fabio

  2. #2
    Non puoi, PHP funziona sul web server, non puo' scrivere niente sul tuo pc. Scaricare contenuti dal web e' un lavoro che deve fare il browser.

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.