Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Copiare img da url

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158

    Copiare img da url

    Sto cercando di copiare un immagine da un url, ad esempio questa:

    "http://images.icecat.biz/img/norm/high/14-31699.jpg";

    La cartella di destinazione si trova sul mio server web ed è la cartella: fotoIce

    Sul web ho trovato diverse funzioni che ulizzano curl, ne ho provate diverse fra cui questa:

    Codice PHP:

    $url 
    'http://images.icecat.biz/img/norm/high/14-31699.jpg';

    $dir "/fotoIce";
    $lfile fopen($dir basename($url), "w");

    $ch curl_init();
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
    curl_setopt($chCURLOPT_FILE$lfile);

    fclose($lfile);
    curl_close($ch); 
    Ma non mi da nessun risultato, la cartella di destinazione resta sempre vuota.
    (P.S Premetto che la cartella di destinazione hai i permessi sia in lettura che scrittura e che allow_url_fopen è abilitato sul server).

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158
    Adesso funziona, ho utilizzato questo:

    Codice PHP:
    function download_remote_file_with_curl($file_url$save_to

      
    $ch curl_init(); 
      
    curl_setopt($chCURLOPT_POST0); 
      
    curl_setopt($ch,CURLOPT_URL,$file_url);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
      
    $file_content curl_exec($ch); curl_close($ch); 
      
    $downloaded_file fopen($save_to'w');
     
    fwrite($downloaded_file$file_content);
     
    fclose($downloaded_file); 
      } 

    download_remote_file_with_curl('http://images.icecat.biz/img/norm/high/14-31699.jpg'realpath("./fotoIce") . '/pippo.jpg'); 
    Ma adesso c'e' un altro problema... qui:

    Codice PHP:
    download_remote_file_with_curl('http://images.icecat.biz/img/norm/high/14-31699.jpg'realpath("./fotoIce") . '/pippo.jpg'); 
    Cosi' mi copia l'immagine nella cartella del mio server e la chiama pippo.jpg
    il prblema e' che devo copiare una grande quantita' di immagini, quindi deve essere un operazione dinamica, allora ho aggiunto queste istruzioni:

    Codice PHP:
     $NomeFile$file['filename']. ".".$file['extension']; 
    che mi recupera dall'url di partenza ('http://images.icecat.biz/img/norm/high/14-31699.jpg') nome fail ed estezione, quindi in questo caso $NomeFile conterra' --> 14-31699.jpg che e' il nome che devo assegnare al file.

    Al posto di pippo.jpg mi deve passare il valore contenuto in $NomeFile quindi il file dovrà chiamarsi 14-31699.jpg. Ho provato cosi':

    Codice PHP:
    download_remote_file_with_curl('http://images.icecat.biz/img/norm/high/14-31699.jpg'realpath("./fotoIce") . '/$NomeFile'); 
    Ma anzichè crearmi un file di nome "14-31699.jpg" cioè il valore contenuto in nome $NomeFile, mi crea un file chiamato proprio $NomeFile. Quindi è solo u problema di come passare il contenuto della variabile...

    AIUTO!!!

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    i singoli apici non valutano le espessioni php, ma prendono tutto come stringa. devi mettere i doppi apici, oppure concatenare.

    Codice PHP:
    download_remote_file_with_curl('http://images.icecat.biz/img/norm/high/14-31699.jpg'realpath("./fotoIce") . "/$NomeFile");
    //oppure '/'.$NomeFile 

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158
    Ho risolto eliminando realpth nella chiamata della funzione, passando l'intero
    percorso compreso di nome file con la variabile $path.

    Inizialmente mi dava un errore fopen che ho risolto sostituendo in $path tutte
    le / con \\ non chiedetemi il xche' in quanto non ho capito un gran che, ma cosi' funziona! Sto importando dinamicamente 86 mila immagini

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.