【问题标题】:Permission issue laravel 5 storeas()权限问题 laravel 5 storeas()
【发布时间】:2016-11-27 14:47:58
【问题描述】:

所以我在带有 Xampp 的 Windows 10 机器上使用 laravel。

我正在尝试将文件从表单上传到 storage/app/images/ 但每次我尝试这样做时都会遇到权限问题。

FilesystemAdapter.php 第 119 行中的错误异常: fopen(C:\xampp\htdocs\test\public):打开流失败:权限 拒绝

我上传文件的功能是

$request->file('imgurl')->storeAs('images',request()->file('imgurl')->getClientOriginalName());
return back();

我做过的事情

  1. 检查文件是否正在通过,dd($request->getClientOriginalName()) 返回文件原名
  2. 检查了 storage/images 文件夹的权限。它们设置为 755 (drwxr-xr-x 1)
  3. php artisan cache:clear, chmod -R 777 app/storage, composer dump-autoload

【问题讨论】:

  • 那么 windows 10 有 chmod 命令吗?我错过了什么。 (cygwin?)

标签: php laravel-5


【解决方案1】:

这是一个旧线程,但我遇到了同样的问题并想通了。当您的文件上传失败时会发生这种情况。 当文件上传失败时,文件的realPath变量会指向Laravel的public文件夹,而不是上传的文件(因为没有)。

所以在你的代码中你应该检查文件上传是否成功:

<?php
if($request->hasFile('imgurl'))
{
    // You can store the uploaded file here
}

如前所述,问题的根源是上传问题。你可以检查几件事。

  1. 上传是否超过了upload_max_filesize 的值
  2. 上传是否超过了post_max_size的值
  3. 您是否对upload_tmp_dir 定义的目录具有正确的权限?

【讨论】:

    【解决方案2】:

    检查您的文件大小是否不超过 php.ini 文件中通知的“upload_max_filesize”限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-18
      • 2023-03-15
      • 2020-11-24
      • 2016-11-15
      • 1970-01-01
      • 2016-09-12
      • 2021-02-02
      相关资源
      最近更新 更多