【问题标题】:Laravel 5 File Facade not execute next code if statement false如果语句为假,Laravel 5 File Facade 不执行下一个代码
【发布时间】:2015-10-17 10:27:30
【问题描述】:

如果文件存在,则使用此代码会给我错误

Filesystem.php 第 338 行中的 ErrorException:mkdir():文件存在

而不是执行下一个插入用户表的代码

.....
if(!File::exists($path.$data['avatar']->getClientOriginalName())){
    File::makeDirectory($path, 0755, true);
    Image::make($data['avatar']->getRealPath())->resize(200, 200)->save($path.$data['avatar']->getClientOriginalName());
    Post::create([
            'user_id' => Auth::user()->id,
            'content' => "assets/uploads".date('/Y/m/d/').$data['avatar']->getClientOriginalName(),
            'type'    => 'image'
        ]);
}
$user = new User;
$user->username = $data['username'];
$user->password = Hash::make($data['password']);
$user->avatar   = "assets/uploads".date('/Y/m/d/').$data['avatar']->getClientOriginalName();
$user->email = $data['email'];
$user->first_name = $data['first_name'];
$user->last_name = $data['last_name'];
$user->role_id = $data['level'];
$user->save();
....

AFAIK 上面的代码应该执行 insert if 语句 true 或 false,我应该使用 else 语句吗?如果是这样,那么我必须重复两次插入用户,这很糟糕。

那么,问题是为什么上面的代码返回错误而不是执行下一个代码?以及如何解决?

【问题讨论】:

  • 我确定问题出在您在 if 语句中给出的路径上,请仔细检查一次。在某处回显并检查。您可能在其中使用了一些不需要的路径。
  • @ParthapratimNeog ahhh .. 感谢在创建目录之前缺少一些逻辑,请参阅我自己的答案。

标签: php laravel-5 file-exists


【解决方案1】:

在创建目录之前缺少一些逻辑,这是我的解释

此代码将检查 文件名路径 是否不存在,然后执行一些操作。

!File::exists($path.$data['avatar']->getClientOriginalName()

以下代码中的错误中断。

File::makeDirectory($path, 0755, true);

问题 1

我应该使用 else 语句吗?如果是这样,那么我必须重复插入用户 两次,这很糟糕。

完全没有,您只是在创建目录之前遗漏了一些逻辑。

问题 2

为什么上面的代码返回错误而不是执行下一个代码?如何 修复它?

你在开玩笑吗文件名路径不存在并不意味着路径不存在,它可能只是文件名不存在,因此请确保您的 path 不存在然后创建文件夹,无论如何您的情况 filename 不存在但 path 是存在的,但你打电话给File::makeDirectory() 那么这就是为什么你会以

结尾

Filesystem.php 第 338 行中的 ErrorException:mkdir():文件存在

这是一个修复,将您的代码与此同步。

...
if(!File::exists($path)){
    File::makeDirectory($path, 0755, true);
}
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多