上传图片 Laravel
Uploading image Laravel
我尝试在我的 /public/images/profils
目录中上传文件,但我不知道为什么,它不起作用!
这是我的控制器功能:
if ($request->hasFile('image')) {
if ($request->file('image')->isValid()) {
$validated = $request->validate([
'image' => 'mimes:jpeg,png|max:2000',
]);
$extension = $request->file('image')->extension();
$name = uniqid('img_');
$request->file('image')->storeAs('/public/images/profils', $name.'.'.$extension);
}
}
当我检查文件夹时,没有创建文件,但网站上没有出现错误。我补充说图像是从表单发送并通过验证
有人知道答案吗?
谢谢!
首先 laravel 有 2 个资产目录:
- /public : 对于 public 资产
- /storage/app : 用于存储私有资产
如果您想使用 $file->store
保存文件,它会根据 /storage/app
从您那里获得一个 相对 路径
如果你想创建资产 public,你必须创建一个像这样的符号链接:
/storage/app/public --> /public/storage
使用此符号链接,您可以访问 /storage/app/ 中的 public 目录,例如:
$file = $request->file("file");
$address = $file->store("public/tmp_pic");
稍后您可以通过 public url 访问它。
//your public URL will start from public directory
// and because of symlink you have to add /storage
$uri = "/storage".substr($address, 6);
您可以通过 laravel artisan 命令添加符号链接,如下所示:
php artisan storage:link
或手动添加
我尝试在我的 /public/images/profils
目录中上传文件,但我不知道为什么,它不起作用!
这是我的控制器功能:
if ($request->hasFile('image')) {
if ($request->file('image')->isValid()) {
$validated = $request->validate([
'image' => 'mimes:jpeg,png|max:2000',
]);
$extension = $request->file('image')->extension();
$name = uniqid('img_');
$request->file('image')->storeAs('/public/images/profils', $name.'.'.$extension);
}
}
当我检查文件夹时,没有创建文件,但网站上没有出现错误。我补充说图像是从表单发送并通过验证
有人知道答案吗? 谢谢!
首先 laravel 有 2 个资产目录:
- /public : 对于 public 资产
- /storage/app : 用于存储私有资产
如果您想使用 $file->store
保存文件,它会根据 /storage/app
如果你想创建资产 public,你必须创建一个像这样的符号链接:
/storage/app/public --> /public/storage
使用此符号链接,您可以访问 /storage/app/ 中的 public 目录,例如:
$file = $request->file("file");
$address = $file->store("public/tmp_pic");
稍后您可以通过 public url 访问它。
//your public URL will start from public directory
// and because of symlink you have to add /storage
$uri = "/storage".substr($address, 6);
您可以通过 laravel artisan 命令添加符号链接,如下所示:
php artisan storage:link
或手动添加