【问题标题】:Upload a blob avatar in Octobercms在 Octobercms 中上传 blob 头像
【发布时间】:2021-02-19 11:02:03
【问题描述】:

我正在使用 October 并使用 JWT Auth 在 Vue.js(Quasar 框架)中开发前端应用程序。 在 Vue 中,我使用 FileReader 读取了.jpg。结果,我有一个 blob 发送到 October,其中包含配置文件参数和 POST axios 请求以更新现有用户配置文件。

10 月,我在 route.php 中有一个带有以下代码的插件 API。 似乎我检索了 blob,但是当我尝试将其存储为 file 时,我得到存储的图像不一致或 10 月错误代码,例如:

我可以发送原始图像吗?如何将它们存储在 10 月份的文件中?谢谢

    Route::post('Change-Profile', function (Request $request) {
       $user = new User;
       $user->street_addr = $request->street_addr;

       $file = new System\Models\File;
       $file->data = Input::file( $request->avatar );
       $file->is_public = false;
       $file->save();

       $user->avatar = $file;
       $user->save();

【问题讨论】:

  • 好的,可以试试这个dd(post());
  • hmm 然后$user->avatar = Input::file('avatar'); 这应该足够了
  • 你需要先保存,然后才能得到正确的路径,因为直到你保存它,它才会在临时。
  • hmm user->avtar 关系是public 所以也许你可以扩展它并添加privateAvatar 关系并开始使用它
  • 为了符合 GDPR,我必须使用我的 privateAvatar 扩展模型。非常感谢您的宝贵帮助!

标签: vue.js octobercms quasar-framework


【解决方案1】:

由于我在这个微不足道的问题上花费了太多时间,我想分享我在 Hardik 的帮助下做出的最终解决方案。再次感谢!

        $bIsAvatar = true;
        $user = new User;
        $user_email = $request->email;

        $rules = [
            'email' => 'required|email|min:6',
            'username' => 'required|string|min:5',
            'zip' => 'string|min:1|max:5',
            'avatar' => 'image|mimes:jpeg,png,jpg,gif|max:10000'
        ];

        $validation = Validator::make(Input::all(), $rules);
        if ($validation->fails()) {
            return response()->json([
                'Error' => 'User : ' . $user_email ,
                'Champs invalides : ' . $validation->messages()
            ], Response::HTTP_BAD_REQUEST);
        }

        $user = User::findByEmail( $user_email );
        if (!$user || $user->isBanned() || !$user->is_activated) {
            return response()->json(
                ['Error' => 'User non trouvé ou non autorisé : ' . $user_email ], Response::HTTP_NOT_FOUND
            );
        }

        $user->name = $request->name;
        $user->surname = $request->surname;
        $user->email = $request->email;
        $user->street_addr = $request->street_addr;
        $user->city = $request->city;
        $user->zip = $request->zip;
        $user->phone = $request->phone;
        $user->mobile = $request->mobile;
        $user->about_me = $request->about_me;

        if ( $request->avatar == null || empty($request->avatar) ) $bIsAvatar = false;
        else {
            $user->avatar = Input::file('avatar');
            $user->avatar->is_public = false;
        }
        $user->save();
        if ($bIsAvatar) {
            $avatar_path = $user->avatar->getPath();
            //$resultat = "User " . $user->email . " : profil mis à jour avec l'avatar=" . $avatar_path;
            $resultat = "Profil mis à jour avec avatar" . $user;
        } else
            //$resultat = "User : " . $user->email . " : profil mis à jour sans avatar";
            $resultat = "Profil mis à jour sans avatar" . $user;

        return response()->json($resultat);
    });

【讨论】:

    猜你喜欢
    • 2018-10-09
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多