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

    Salvare immagini remote

    Salve, è da un pò che cerco di capire come salvare un file situato su un altro server, nello specifico un'immagine. Come posso fare? Ho trovato questo script:

    <?php
    set_time_limit(300);
    //Percorso file remoto
    $remotefile=$_POST['remoteurl'];;
    //Cartella locale in cui copiare il file
    $cartella="downloaded/"; // cartella dove mettere immagini
    //apro il file remoto da leggere
    $srcfile1 = fopen("$remotefile", "r");
    //prelevo il nome del file
    $nomefile=basename($remotefile);
    //apro il file in locale
    if (!($fp1 = fopen($cartella.$nomefile,"w")));
    //scrivo contenuto del file remoto, ora in temp file, in file locale
    while ($contents = fread( $srcfile1, 8192 )) {
    fwrite( $fp1, $contents, strlen($contents) );
    }
    //chiudo i due files
    fclose($srcfile1);
    fclose($fp1);
    ?>

    Ma mi crea un'immagine corrotta. Soluzioni?
    Grazie!

  2. #2
    Ragazzi nessuno?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    cosa intendi con "corrotta"? Potrebbe esserci un problema con l'accesso remoto... hai provato con altri indirizzi? Comunque puoi provare:

    Codice PHP:
    $remotefile=$_POST['remoteurl'];;
    $src file_get_contents($remotefiletrue);
    $cartella="downloaded/"// cartella dove mettere immagini
    $dst $cartella.basename($remotefile);
    @
    file_put_contents($dst$src); 

  4. #4
    Nulla così non aggiunge nemmeno il file. Grazie comunque per la risposta!

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Se il file e' un'immagine usa le lib gd

    Nel caso c'e' un modo piu' semplice per caricare il file remoto ;

    $file = "http://www.dominio.it/file.jpg" ;

    $fc = file_get_contents($file) ;

    $mioFile = "./dir/mio_file.jpg" ;

    file_put_contents( $mioFile , $fc , FILE_BINARY ) ;

    Et voila'.

  6. #6
    Ciao, a me servirebbero solo immagini, ma con la libreria gd come mi dovrei muovere?
    Per altro il tuo script mi da questo errore:
    Call to undefined function: file_put_contents()

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    o.O mi sembra strano la funzione e' quella forse l'ho scritta male ma nn mi pare cmq controlla qui

    Inoltre devi vedere se ti e' possibile caricare il file da remoto.

    puoi usare la funzione get_image_size(...) per capire se il file e' raggiungibile o meno.

    Se tale funzione non da errore allora puoi proseguire con il download.

    Un altra soluzione potrebbe essere :
    Codice PHP:
    $remoteFile "htt://www.dominio.com/file.jpg" ;

    if( 
    get_image_size($remoteFile) )
    {
        
    $im imagecreatefromjpeg$remoteFile ) ;

        if( 
    $im )
        {
            
    $myFile "./dir/myfile.jpg" ;
            
    imagejpeg($im,$myFile);
        }

    Questa usa direttamente le lib gd di php che ovviamente devono essere attivate sul server dove lavori.
    Queste librerie sono le lib std di php per la gestione di immagini.

  8. #8
    non credo abbia molto senso effettuare quest'operazione con le GD perché oltre ad aumentare i tempi di esecuzione, se un'immagine JPEG viene aperta e viene risalvata come JPEG perde qualità :\
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Purtroppo contiuna a darmi lo stesso errore.
    Call to undefined function

  10. #10
    mmm file_put_contents ( http://www.php.net/file_put_contents ) è stata introdotta in PHP5 il che significa che stai usando PHP 4 ... ti conviene aggiornare
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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 © 2026 vBulletin Solutions, Inc. All rights reserved.