fopen():文件名不能为空(laravel 5.4)

时间:2017-04-25 16:26:29

标签: php laravel laravel-5.4

我有一个 ErrorException第146行中的FilesystemAdapter.php

fopen(): Filename cannot be empty

使用laravel FilupLoad->store()方法

表单是multipart / form-data

商店代码:

if ($request->hasFile('photo') && $request->photo->isValid()) {

            // dd($request->file('photo'));
            $path = $request->photo->store('profiles');

            $imagen = new Imagen(['url' => $path]);

            $imagen->save();

            $perfil->imagen()->attach($imagen);
        }

如果我使用dd($request->file('photo'));,请参阅文件名

对此有何帮助? 在查看FilesystemAdapter.php并且它似乎是getRealPath()的问题之后,始终返回false。有任何想法吗?我是php的新手

3 个答案:

答案 0 :(得分:1)

我也遇到了这个问题,我想添加我发现的内容,以防它帮助其他人。

1)使用php.ini ; sys_temp_dir = "/tmp"检查您的IIS文件,特别是PHP哪些应该可以被评论关闭,至少v5.6

2)同时验证应该设置的upload_tmp_dir=C:\WINDOWS\temp

3)此外,您还需要php_fileinfo启用的扩展名,在Windows中为extension=php_fileinfo.dll

当你测试时,你可以像这样调试输出,以下两者都应该回来true

dd($request->hasFile('my_file'));

dd($request->file('my_file')->isValid());

4)如果您仍然遇到问题,请检查这些目录上的permisssions。

答案 1 :(得分:1)

这是Windows®服务器的Internet 信息服务(IIS)的已知问题。唯一需要的是 - 许可

  

C:\的Windows \温度

因为它被设置为

  

upload_tmp_dir

在php.ini中为php7。

答案 2 :(得分:0)

最后我在另一个php安装中尝试相同的代码并且正常工作。所以可能是我的php.ini

中的东西