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的新手
答案 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
中的东西