php - Laravel 图片上传到数据库
问题描述
这个函数是我用来存储新公司的函数:
public function store(Request $request)
{
$file = $request->file('logo');
$filename = 'company-logo-' . time() . '.' . $file->getClientOriginalExtension();
$path = $file->storeAs('public', $filename);
dd($path);
Company::create([
'name' => $request->name,
'email' => $request->email,
'logo' => $request->logo,
'website' => $request->website
]);
return redirect('/company/all');
}
此视图具有以下形式:
@extends('layouts.app')
@section('content')
<div class="card">
<div class="card-body">
<h4 class="card-title">Create a Company</h4>
</div>
<div class="container">
<div class="jumbotron">
<ul class="list-group">
<li class="list-group-item">
<h3>Enter Company Information:</h3>
<form action="{{ route('company.store') }}" enctype="mutlipart/form-data" method="POST">
@csrf
<div class="form-group">
<input type="text" class="form-control" name="name" placeholder="Company name" value="{{ old('name') }}">
</div>
<div class="form-group">
<input type="text" class="form-control" name="email" placeholder="Email" value="{{ old('email') }}">
</div>
<div class="form-group">
<input class="form-control" type="file" name="logo">
</div>
<div class="form-group">
<input class="form-control" type="url" name="website" placeholder="Website" value="{{ old('website') }}">
</div>
<button class="btn btn-primary" type="submit">Add Company</button>
</form>
</li>
</ul>
</div>
</div>
</div>
@endsection
这是路线:
Route::post('/add', 'CompaniesController@store')->name('store');
好吧,当我尝试提交此表单时会发生什么,$file 变量总是返回 null:
Error
Call to a member function getClientOriginalExtension() on null
http://localhost:8000/company/add
基本上我想要做的是将图像的名称发送到数据库并将图像上传到我的公共文件夹。这段代码也不会发生。当我擦除从 $file 到 dd($path) 的部分时;它将值添加到数据库中,但尚未上传图像。
有什么帮助吗?提前致谢。
解决方案
尝试更改为:
public function store(Request $request)
{
$file = $request->file('logo');
$path = '';
if($file) {
$filename = 'company-logo-' . time() . '.' . $file->getClientOriginalExtension();
$path = $file->storeAs('public', $filename);
}
Company::create([
'name' => $request->name,
'email' => $request->email,
'logo' => $path,
'website' => $request->website
]);
return redirect('/company/all');
}
推荐阅读
- python - 我想为 IntelRealsense d435 相机定制训练一个 NN 来检测水中的球
- java - 在Java中如何使用接受其父类的单个函数处理所有子类
- django - 如何在 Django 测试中发送命令行输入响应
- powershell - 如何使用 PowerShell 替换多个文件中的文本并将每个文件保存在新文件夹中?
- php - SQL 语句中的 bindValue() 抛出异常
- r - 如何根据 R 中多个变量的标准差创建新数据框
- html - CSS 选择器选择包含具有特定 href 属性值的锚点的元素
- c++ - 基类可以声明一个虚方法但不定义它吗?仍然在派生类中定义
- r - as.vector(data) 中的错误:没有方法可以将此 S4 类强制为 R 中的向量
- machine-learning - 预测黄瓜收成