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

Diese Arbeits ok - Datei im aktuellen Ordner speichern, aber wenn ich versuche:Datei speichern mit file_put_contents in Ordner

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

dann habe ich Fehler:

failed to open stream: No such file or directory in

etc

warum? Wie kann ich das im Unterordner speichern?

+0

Haben Sie Rechte, um es in diesem Ordner zu speichern? – Robert

+0

Versuchen Sie, den führenden Schrägstrich zu entfernen. –

Antwort

10

Immer vollständige Pfade verwenden verwenden möchten, und stellen Sie sicher, Das Verzeichnis ist beschreibbar. Sie können copy auch direkt mit 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

Wann file_put_contents in diesem Beispielcode zu verwenden? – pal4life

6

Versuchen Sie, lassen Sie den ersten Schrägstrich aus:

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

Überprüfen Sie die Zugriffsrechte diese wenn immer noch nicht funktioniert.

2

Sie sollten, wenn Ordner exsits überprüfen und wenn nicht erstellen Sie diesen Ordner

$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')); 

auch sicherstellen, dass Sie absolute_path statt RELATIV

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

fügen Sie eine Erklärung hinzu – HaveNoDisplayName

0
$dir = "folder_name".$filename; 

Sie die oben einfach verwenden können, um Inhalte auf jede Datei von jedem Ordner.

Verwandte Themen