fopen(): 文件名不能为空 (laravel 5.4)
fopen(): Filename cannot be empty (laravel 5.4)
我有一个
ErrorException
在 FilesystemAdapter.php
第 146 行:
fopen(): Filename cannot be empty
使用laravelFilupLoad->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()
有问题,总是 returns 错误。有任何想法吗?我是 php
的新手
最后,我在另一个 php 安装中尝试了相同的代码并且工作正常。所以可能是我的 php.ini
我也遇到了这个问题,我想添加我发现的内容,以防对其他人有所帮助。
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) 如果仍有问题,请检查这些目录的权限。
这是 Windows® 服务器的 Internet 信息服务 (IIS) 的一个已知问题。唯一需要的是 -
的许可
C:\Windows\temp
因为设置为
upload_tmp_dir
在 php.ini 中 php7。
我有一个
ErrorException
在 FilesystemAdapter.php
第 146 行:
fopen(): Filename cannot be empty
使用laravelFilupLoad->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()
有问题,总是 returns 错误。有任何想法吗?我是 php
最后,我在另一个 php 安装中尝试了相同的代码并且工作正常。所以可能是我的 php.ini
我也遇到了这个问题,我想添加我发现的内容,以防对其他人有所帮助。
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) 如果仍有问题,请检查这些目录的权限。
这是 Windows® 服务器的 Internet 信息服务 (IIS) 的一个已知问题。唯一需要的是 -
的许可C:\Windows\temp
因为设置为
upload_tmp_dir
在 php.ini 中 php7。