web-dev-qa-db-de.com

stream konnte nicht geöffnet werden: Der HTTP-Wrapper unterstützt keine beschreibbaren Verbindungen

Ich habe meine localhost-Dateien auf meine Website hochgeladen, zeigt jedoch diesen Fehler an: -

: [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

Was ich persönlich glaube, dass der Inhalt in einer Datei im Cache-Ordner gespeichert wird, und wenn ich die Dateien auf meinen Webserver hochlade, versucht er, auf den zwischengespeicherten Localhost-Ordner zuzugreifen.

68

Anstelle von file_put_contents(***WebSiteURL***...) müssen Sie den Serverpfad zu /cache/lang/file.php (z. B. /home/content/site/folders/filename.php) verwenden.

Sie können eine Datei nicht über HTTP öffnen und erwarten, dass sie geschrieben wird. Stattdessen müssen Sie es über den lokalen Pfad öffnen.

140
drew010

sie könnten die Funktion fopen () verwenden.

ein Beispiel:

$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);
    }
12
The Bumpaster

Möge dieser Code Ihnen helfen. Es funktioniert in meinem Fall.

$filename = "D:\xampp\htdocs\wordpress/wp-content/uploads/json/2018-10-25.json";
    $fileUrl = "http://localhost/wordpress/wp-content/uploads/json/2018-10-25.json";
    if(!file_exists($filename)):
        $handle = fopen( $filename, 'a' ) or die( 'Cannot open file:  ' . $fileUrl ); //implicitly creates file
        fwrite( $handle, json_encode(array()));
        fclose( $handle );
    endif;
    $response = file_get_contents($filename);
    $tempArray = json_decode($response);
    if(!empty($tempArray)):
        $count = count($tempArray) + 1;
    else:
        $count = 1;
    endif;
    $tempArray[] = array_merge(array("sn." => $count), $data);
    $jsonData = json_encode($tempArray);
    file_put_contents($filename, $jsonData);
0