Laravel 5.6 上传图片
Laravel 5.6 upload image
我想上传图片 laravel:I 在 mysql 中创建了字段:
imagepath varchar 250
创建表单:
<form method="post" id="formId" action="/ticket" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group ">...other fields
<div class="form-group">
<input type="file" class="form-control-file" name="imageFile" id="imageFile" aria-describedby="fileHelp">
</div>
在我的控制器中:
public function store(Request $request)
{
$fileName = request()->imageFile->getClientOriginalExtension();
dd($fileName);//echos ".jpg"
$tickes = Users::create(['imagePath' => $fileName]);
}
但是我的数据库总是空的!我想将它存储在 Laravel 的 public/storage 文件夹中。
请帮忙!
您可以使用此代码将图片上传到`public/storage/ 目录:
if ($request->hasFile('input_img')) {
if($request->file('input_img')->isValid()) {
try {
$file = $request->file('input_img');
$name = rand(11111, 99999) . '.' . $file->getClientOriginalExtension();
# save to DB
$tickes = Users::create(['imagePath' => 'storage/'.$name]);
$request->file('input_img')->move("storage", $name);
} catch (Illuminate\Filesystem\FileNotFoundException $e) {
}
}
}
- 这段代码只保存文件扩展名,不保存图片路径。
- 您需要先将文件保存到存储器中,然后您的数据库才能获取它的路径。
Laravel 有非常好的文档,这个 link 将帮助您解决这个问题。 https://laravel.com/docs/5.6/filesystem
我想上传图片 laravel:I 在 mysql 中创建了字段:
imagepath varchar 250
创建表单:
<form method="post" id="formId" action="/ticket" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group ">...other fields
<div class="form-group">
<input type="file" class="form-control-file" name="imageFile" id="imageFile" aria-describedby="fileHelp">
</div>
在我的控制器中:
public function store(Request $request)
{
$fileName = request()->imageFile->getClientOriginalExtension();
dd($fileName);//echos ".jpg"
$tickes = Users::create(['imagePath' => $fileName]);
}
但是我的数据库总是空的!我想将它存储在 Laravel 的 public/storage 文件夹中。 请帮忙!
您可以使用此代码将图片上传到`public/storage/ 目录:
if ($request->hasFile('input_img')) {
if($request->file('input_img')->isValid()) {
try {
$file = $request->file('input_img');
$name = rand(11111, 99999) . '.' . $file->getClientOriginalExtension();
# save to DB
$tickes = Users::create(['imagePath' => 'storage/'.$name]);
$request->file('input_img')->move("storage", $name);
} catch (Illuminate\Filesystem\FileNotFoundException $e) {
}
}
}
- 这段代码只保存文件扩展名,不保存图片路径。
- 您需要先将文件保存到存储器中,然后您的数据库才能获取它的路径。 Laravel 有非常好的文档,这个 link 将帮助您解决这个问题。 https://laravel.com/docs/5.6/filesystem