web-dev-qa-db-fra.com

impossible d'ouvrir le flux: le wrapper HTTP ne prend pas en charge les connexions en écriture

J'ai téléchargé mes fichiers localhost sur mon site Web, mais il me montre cette erreur: -

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

Ce que j’ai personnellement l'impression que le contenu est enregistré dans un fichier dans le dossier de cache et lorsque je télécharge les fichiers sur mon serveur Web, il tente d'accéder au dossier localhost mis en cache.

68
Django Anonymous

Au lieu de faire file_put_contents(***WebSiteURL***...), vous devez utiliser le chemin du serveur à /cache/lang/file.php (par exemple /home/content/site/folders/filename.php).

Vous ne pouvez pas ouvrir un fichier sur HTTP et vous attendre à ce qu'il soit écrit. Au lieu de cela, vous devez l'ouvrir à l'aide du chemin local.

140
drew010

vous pouvez utiliser la fonction fopen ().

quelques exemples:

$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

Puisse ce code vous aider. Cela fonctionne dans mon cas.

$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
Birendra Maharjan