我在laravels文件系统上传方面遇到了一些麻烦。
当我尝试执行此代码时
Storage::disk('public')->put(
$img->getClientOriginalName(),
file_get_contents($img->getRealPath())
);
在公共文件夹中没有任何本地发生,我甚至检查文件是否存在并返回true
dd(Storage::disk('public')->exists($img->getClientOriginalName()));
现在我正在使用$img->move
方法,它可以按我的意愿运行。
磁盘也在filesystems.php中配置
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'visibility' => 'public',
],
我对此感到困惑,因为几个星期前它在另一个项目中应该有效。
答案 0 :(得分:1)
我现在已经在Claudio的帮助下使用'root' => public_path('')
解决了这个问题。
答案 1 :(得分:0)
这应该有效:
if ($request->hasFile('myFile'))
{
$fileExtension = strtolower($request->file('myFile')->getClientOriginalExtension());
$newFilename = str_random(20) . '.' . $fileExtension;
$storagePath = storage_path() . '/app/uploads/';
$request->file('myFile')->move($storagePath, $newFilename);
}