【问题标题】:file_put_contents(path): failed to open stream: Is a directoryfile_put_contents(path): 无法打开流: 是一个目录
【发布时间】:2021-09-20 07:41:29
【问题描述】:

环境:

  • Laravel 版本:5.8.29
  • PHP 版本$ php --version:PHP 7.2.24 (cli)

问题陈述:

我无法在创建的目录中使用 put 方法将文件从 s3 下载到 本地 磁盘。

ErrorException (E_WARNING) : file_put_contents(/path/storage/4804_1626): 无法打开流:是目录

但是,我发现该目录是使用以下权限创建的。我尝试将权限777 设置为在makeDirectory() 方法中传递第三个参数,但它不起作用。

ubuntu@ip:~/path/storage$ ll
drwxr-xr-x  2 www-data www-data     4096 Sep 20 07:07  4804_1626/

文件和配置:


$folderPath = Storage::disk('local')->makeDirectory($folderName, 0777);

$contents = Storage::disk('s3')->get('path/' . $fileName);

Storage::disk('local')->put($folderName, $contents); // Following line is throwing error


【问题讨论】:

  • 您将文件放入文件夹本身。在文件夹名之后尝试 /

标签: php laravel


【解决方案1】:

您需要指定文件的完整路径,而不仅仅是文件夹:

Storage::disk('local')->put($folderName . '/' . $fileName, $contents); 

【讨论】:

    猜你喜欢
    • 2018-02-12
    • 2018-08-23
    • 2013-01-11
    • 2015-05-05
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多