【问题标题】:Laravel Storage returns: mkdir(): File existsLaravel 存储返回:mkdir(): 文件存在
【发布时间】:2015-12-29 14:57:45
【问题描述】:

当我尝试检查 Laravel 5.1 中是否存在文件时,我总是收到此错误:

ErrorException in Local.php line 95: 
mkdir(): File exists

我不知道这里有什么问题,我想检查一个文件是否存在:

$exists = Storage::disk('images')->has('filename.jpg');

dd($exists);

磁盘“图像”:

'disks' => [

    'local' => [
        'driver' => 'local',
        'root'   => storage_path().'/app',
    ],

    'images' => [
        'driver' => 'local',
        'root'   => storage_path().'/app/images',
    ],

有什么想法吗?

【问题讨论】:

  • 您确定目录storage_path().'/app/images' 存在吗?它是否具有正确的文件权限?
  • 是的,它存在,并且它已经在以前的版本中工作了(我猜 L5.0) - 这很奇怪 - 因为我无法使用 Storage::get() 检查任何文件; - 总是遇到同样的错误
  • 您使用的具体版本是什么?您是否尝试过升级到最新的 5.1 版本?
  • 我使用的是版本 5.1.27 (LTS) - 已经更新了 Laravel,但仍然出现同样的错误

标签: php laravel laravel-5 laravel-5.1 laravel-filesystem


【解决方案1】:

如果我是你,我会尝试全新安装,以验证你在全新安装时是否遇到同样的问题:

composer create-project laravel/laravel testfiles 5.1.*

filesystems.php 中添加disks

'images' => [
        'driver' => 'local',
        'root'   => storage_path().'/app/images',
    ],

Http/routes.php 文件中修改,使根路径如下所示:

Route::get('/', function () {
    $exists = Storage::disk('images')->has('filename.jpg');
    dd($exists);
    return view('welcome');
});

当然,您还需要为此示例项目设置域。

在我的电脑上,我得到false,没有任何错误。

如果您在全新安装时遇到此错误,那么这是一个问题,如果没有,也许您还可以发布您的 composer.jsoncomposer.lock 文件以在您正在使用的确切库上验证它?

【讨论】:

  • 谢谢 - 全新安装并成功。所以删除了用户的所有权限,然后再试一次。它有效。所以(我不确定)但也许这真的是一个文件权限问题。该错误有点奇怪,因为我知道也有“权限被拒绝”错误。感谢您为我指明方向!
  • 我使用生成当前日期创建文件夹,如何在filesystem.php中应用
猜你喜欢
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 2019-12-02
  • 2019-11-11
  • 2023-03-30
相关资源
最近更新 更多