2013-06-20 11 views
6
file_put_contents('image.jpg',file_get_contents('http://static.adzerk.net/Advertisers/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

Questa ok di lavoro - salvare il file nella cartella corrente, ma se provo:Salva file con file_put_contents nella cartella

file_put_contents('/subfolder/image.jpg',file_get_contents('http://static.adzerk.net/Advertisers/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

allora ho errore:

failed to open stream: No such file or directory in

ecc

perché? Come posso salvare questo in una sottocartella?

+0

Hai i diritti per salvarlo in questa cartella? – Robert

+0

Prova a rimuovere la barra iniziale. –

risposta

10

Utilizzare sempre percorsi completi e assicurarsi la directory è scrivibile. È inoltre possibile utilizzare copy direttamente con URL

$url = 'http://static.adzerk.net/Advertisers/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg'; 
$dir = __DIR__ . "/subfolder"; // Full Path 
$name = 'image.jpg'; 

is_dir($dir) || @mkdir($dir) || die("Can't Create folder"); 
copy($url, $dir . DIRECTORY_SEPARATOR . $name); 
+2

Quando utilizzare file_put_contents in questo codice di esempio? – pal4life

6

cercare di lasciare fuori la prima barra:

file_put_contents('subfolder/image.jpg',file_get_contents('http://static.adzerk.net/Advertisers/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

controllare i diritti di accesso, se questo ancora non funziona.

2

Si dovrebbe verificare se exsits cartella e se non creare questa cartella

$dir_to_save = "/subfolder/"; 
if (!is_dir($dir_to_save)) { 
    mkdir($dir_to_save); 
} 
file_put_contents($dir_to_save.'image.jpg',file_get_contents('http://static.adzerk.net/Advertisers/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

anche fare in modo che si desidera utilizzare ABSOLUTE_PATH invece di RELATIVA

1

file_put_contents('../subfolder/image.jpg',file_get_contents('http://static.adzerk.net/Advertisers/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 
 

 
add "../" in your string put into the file_put_contents function then it will work fine..

+0

aggiungere qualche spiegazione – HaveNoDisplayName

0
$dir = "folder_name".$filename; 

è possibile utilizzare quanto sopra per mettere semplicemente il contenuto a qualsiasi file di qualsiasi cartella.

Problemi correlati