php - 当我使用 Laravel 将文件上传到 MySQL 时,我的数据库表中有两个单独的行用于每个请求
问题描述
我正在开发一个 Laravel Web 应用程序,该应用程序应该将 .pdf 文件从表单上传到数据库,用户在上传文件的同一表单中插入一些特定信息。一切正常,但在我的数据库表中,我创建了两个单独的行。第一个仅包含 file_name(原始客户端名称)和 file_size(原始客户端大小),但其他表单信息设置为默认值(NULL),在第二行中,我有相反的附加表单数据,设置正确,但是file_name 和 file_size 设置为默认值(NULL)这是我在控制器块中的功能
public function auteurAdd(Request $request)
{
$parameters = $request->except(['_token']);
$conference = new Conference();
$conference->titre = $parameters['titre'];
$conference->theme = $parameters['theme'];
$conference->track = $parameters['track'];
// upload file into database
if ($request->hasFile('file')) {
$filename = $request->file->getClientOriginalName();
$filesize = $request->file->getClientSize();
$file = new Conference;
$file->file_name = $filename;
$file->file_size = $filesize;
$file->save();
}
$conference->save();
return redirect()->route('auteurHome');
}
这是表格
<form method="post" action="{{route('auteurAdd')}}" class="text-center border border-light p-5"
enctype="multipart/form-data">
{{ csrf_field() }}
<p class="h4 mb-4">Upload d'une conférence</p>
<div class="form-group">
<input name="titre" class="form-control mb-4" placeholder="Titre"/>
<input name="theme" class="form-control mb-4" placeholder="Thème"/>
<input name="track" class="form-control mb-4" placeholder="Track"/>
</div>
<div class="btn btn-mdb-color btn-rounded float-left">
<input type="file" name="file">
</div>
<button class="btn btn-info btn-block my-4" type="submit">Envoyer</button>
</form>
解决方案
试试这样:
public function auteurAdd(Request $request)
{
$parameters = $request->except(['_token']);
$conference = new Conference();
$conference->titre = $parameters['titre'];
$conference->theme = $parameters['theme'];
$conference->track = $parameters['track'];
// upload file into database
if ($request->hasFile('file')) {
$filename = $request->file->getClientOriginalName();
$filesize = $request->file->getClientSize();
$conference->file_name = $filename;
$conference->file_size = $filesize;
}
$conference->save();
return redirect()->route('auteurHome');
}
推荐阅读
- hyperledger-fabric - 超级账本结构 V1.3 中存储的块在哪里
- android - 未解决的参考:RecyclerView 尽管实施了支持:appcompat-v7:28.0.0
- swagger - Swagger 编辑器不显示多部分表单请求参数
- mongodb - MongoDB:按年汇总结果
- pdf - Chrome 查看器 pdf 按钮不适用于 jsPDF
- angular5 - 如何测试注入另一个服务的角度服务
- python - 导出到txt 哪些子文件夹是空的?
- javascript - 将 JSON 接口转换为数组
- javascript - 由于调整 svg 元素的大小,鼠标事件不匹配
- multithreading - 硬件多线程和同时多线程 (SMT)