2012-03-17 14 views
59

mam wrzucone moje pliki localhost na mojej stronie internetowej, ale to pokazuje mi ten błąd: -nie open stream: HTTP wrapper nie obsługuje zapisywalny połączeń

: [2] file_put_contents(***WebsiteURL*** /cache/lang/ ***FileName*** .php) 
[function.file-put-contents]: failed to open stream: HTTP wrapper does 
not support writeable connections | LINE: 127 | FILE: /home/content/ 
***Folders\FileName*** .php 

Co ja osobiście czuję, że zawartość zostaną zapisane w plik w folderze pamięci podręcznej, a kiedy załadowałem pliki na mój serwer internetowy, próbuje uzyskać dostęp do buforowanego folderu localhost.

Odpowiedz

119

Zamiast robić file_put_contents(***WebSiteURL***...) trzeba użyć ścieżki serwera do /cache/lang/file.php (np /home/content/site/folders/filename.php). Nie można otworzyć pliku ponad HTTP i oczekiwać, że zostanie zapisany. Zamiast tego należy go otworzyć przy użyciu ścieżki lokalnej.

+0

Zadziałało wielkie dzięki :) Trzy okrzyki dla Ciebie ... –

+0

Wiele Dziękujemy (+ 1 za doskonałą odpowiedź) –

+0

Używam amazon s3 usługi sieciowe obszar pamięci.. Nie mam ścieżki serwera, ale tylko adres URL. ** Jak uzyskać ścieżkę? ** – Neocortex

13

można użyć funkcji fopen().

kilka przykładów:

$url = 'http://doman.com/path/to/file.mp4'; 
$destination_folder = $_SERVER['DOCUMENT_ROOT'].'/downloads/'; 


    $newfname = $destination_folder .'myfile.mp4'; //set your file ext 

    $file = fopen ($url, "rb"); 

    if ($file) { 
     $newf = fopen ($newfname, "a"); // to overwrite existing file 

     if ($newf) 
     while(!feof($file)) { 
     fwrite($newf, fread($file, 1024 * 8), 1024 * 8); 

     } 
    } 

    if ($file) { 
     fclose($file); 
    } 

    if ($newf) { 
     fclose($newf); 
    } 
+1

Wielkie dzięki. Próbowałem wielu rozwiązań, ale to jest jedyne, które zadziałało dla mnie. – moreirapontocom

+0

Bez problemu: D: D –

Powiązane problemy