如何在具有Angular 7前端和Laravel后端的Firebase上存储图像?

时间:2019-12-27 15:27:27

标签: angular laravel firebase firebase-storage

我对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_pathfile_name与数据库上的对象ID引用关联存储在数据库中。

但是我不知道如何使用Firebase来执行此操作,我必须在Laravel上使用Firebase吗?存储图像并从Firebase接收file_path和file_name?我该怎么做?

还是只是另一种方法?

1 个答案:

答案 0 :(得分:1)

查看此文档https://firebase.google.com/docs/storage/web/upload-files

您可以将图像上传到Firebase存储,并获取下载URL作为回报。您可以将此路径保存在您使用的数据库中。

此链接中有一个不错的教程:https://angularfirebase.com/lessons/firebase-storage-with-angularfire-dropzone-file-uploader/