使用Laravel Nova,您可以上传文件:比如File::make(),但是这个只能保存到磁盘上,我想把上传的文件保存为Base64字符串到数据库中,怎么做呢?
File::make()
n1bvdmb61#
如文档www.example.com中所述https://nova.laravel.com/docs/4.0/resources/file-fields.html#customizing-file-storage,您需要为“文件”字段配置自定义保存。
public function fields(NovaRequest $request) { return [ ... File::make('imagedata')->store( function (NovaRequest $request, $model) { return [ 'imagedata' => base64_encode($request->imagedata->get()) ]; }) ]; }
在上面的例子中,imagedate是我想要保存base64编码的表的字段。要将内容显示为图像,只需添加thumbnail:
imagedate
thumbnail
public function fields(NovaRequest $request) { return [ ... File::make('imagedata')->store( function (NovaRequest $request, $model) { return [ 'imagedata' => base64_encode($request->imagedata->get()) ]; })->thumbnail(function($value, $disk) { return 'data: image/png;base64,' . $value; }) ]; }
1条答案
按热度按时间n1bvdmb61#
如文档www.example.com中所述https://nova.laravel.com/docs/4.0/resources/file-fields.html#customizing-file-storage,您需要为“文件”字段配置自定义保存。
在上面的例子中,
imagedate
是我想要保存base64编码的表的字段。要将内容显示为图像,只需添加
thumbnail
: