我对Firebase有点困惑。我有一个可以正常使用Laravel的默认存储的应用程序。但是我不希望用户生成的其他任何内容都在服务器上,因此我正在考虑使用Firebase Cloud Storage Service。但我有一些疑问。
这是我的控制器功能,当我收到图像文件时,该功能会上传到Laravel的服务器上:
if($request->hasFile('file')) {
$mpFile = $request->file('file');
$date = Carbon::now();
$year = $date->year;
$month = $date->month;
$directory = $year . '/' . $month;
$fileObj['filepath'] = Storage::disk('uploads')->put($directory, $mpFile);
$fileObj['fileName'] = basename($fileObj['filepath']);
$exists = Storage::disk('uploads')->exists($fileObj['filepath']);
if($exists) {
$this->mdFile->store($fileObj, $categoryObj->mp_category_id);
$response["imgstatus"] = "Imagem anexada com sucesso";
}else {
$response["imgstatus"] = "Não foi possível fazer o upload tente novamente";
}
}
发生这种情况时,file_path
和file_name
与数据库中的对象ID参考相关联地存储在数据库中。
但是我不知道如何使用Firebase来执行此操作,我必须在Laravel上使用Firebase吗?存储图像并从Firebase接收file_path和file_name?我该怎么做?
还是只是另一种方法?
查看此文档https://firebase.google.com/docs/storage/web/upload-files
您可以将图像上传到Firebase存储并获得下载URL作为回报。您可以将此路径保存在您使用的数据库中。
此链接中有一个不错的教程:https://angularfirebase.com/lessons/firebase-storage-with-angularfire-dropzone-file-uploader/