我有一个使用 Vapor 部署的 Laravel 应用程序 (v6.x)。
我正在尝试使用 Laravel Nova 中的表单上传文件。
Nova 提供了多种上传方式,一种使用他们自己的实现以方便使用,另一种是开发人员拥有更多控制权。
标准代码:
public function fields(Request $request)
{
return [
File::make('file')
->disk('s3')
->storeSize('attachment_size')->nullable()
->path('ID-'.$request->associatedId)
->putFile()
->hideWhenUpdating()
->hideFromIndex(),
];
}
和“控制”:
public function fields(Request $request)
{
return [
File::make('file')
->store(function (Request $request, $model) {
// I think i can do whatever i want here.
return [
'file' => $request->file->store('/ITEM-'.$request->associatedId, 's3'),
'attachment_size' => $request->file->getSize(),
];
}),
];
}
只要文件约为 3MB 或更少,这两种方法都可以。但是,我需要上传大小约为 20~200 MB 的文件。
每当我尝试提交表单时,所有信息都会存储到数据库中,并且不会显示错误。遗憾的是,文件字段没有填写,也没有上传。
我需要做什么才能在 Laravel nova 中上传大文件?