简体   繁体   English

将图像文件从Android设备上传到Laravel API

[英]Upload image file from Android Device to Laravel API

I build the app using React-Native and I created API in Laravel for that project. 我使用React-Native构建应用程序,并在Laravel中为该项目创建了API。 Now when I install app on android phone using generated apk file I can't save image files to S3 storage. 现在,当我使用生成的apk文件在Android手机上安装应用程序时,无法将图像文件保存到S3存储中。

When I work locally on ios and android simulators and also send file using Postman everything works great, but in physical android device it doesn't save the image and not catch any error. 当我在ios和android模拟器上本地工作并且还使用Postman发送文件时,一切正常,但是在物理android设备中,它不会保存图像,也不会捕获任何错误。

There is my controller method code: 有我的控制器方法代码:

public function updatePhoto(Request $request)
    {
        try{
            $userEmail = $request->userEmail;
            $filename = 'userPhotos/' . time() . '-' . $request->fileName . ".jpg";

            Storage::disk('s3')->put($filename, file_get_contents($request->file));
            Storage::disk('s3')->setVisibility($filename, 'public');

            $url = Storage::disk('s3')->url($filename);

            $updateUserPhoto = DB::table('users')
                    ->where('email', $userEmail)
                    ->update(['photo_path' => $url]);

            $user = DB::table('users')
                    ->where('email', $userEmail)->get();

            return response()->json(['status' => 'OK', 'result' => $user]); 
        }catch(\Exception $e){
            $user = DB::table('users')
                    ->where('email', $userEmail)->get();

            $this->storeErrorLog($user->id, '/updatePhoto', $e->getMessage());

            return response()->json(['status' => 'ERR', 'result' => $e->getMessage()]); 
        }
    }

Is anybody has similar issues with Laravel API? 是否有人对Laravel API有类似的问题? Maybe it's some android image data formatting? 也许这是一些android图像数据格式? I really appreciate any help. 我非常感谢您的帮助。

There is my laravel_dir/storage/logs/laravel.log: 这是我的laravel_dir / storage / logs / laravel.log:

[2019-07-20 06:19:41] production.ERROR: Property [id] does not exist on this collection instance. {"exception":"[object] (Exception(code: 0): Property [id]$
[stacktrace]
#0 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/app/Http/Controllers/UserController.php(213): Illuminate\\Support\\Collection->__get('id')
#1 [internal function]: App\\Http\\Controllers\\UserController->updatePhoto(Object(Illuminate\\Http\\Request))
#2 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#3 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Con$
#4 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\ControllerDispatc$
#5 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\\Routing\\Route->runControl$
#6 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Router.php(679): Illuminate\\Routing\\Route->run()
#7 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illumin$
#8 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Rou$
#9 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Routing\\Middleware\\S$
#10 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#11 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(58): Illuminate\\Rout$
#12 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Routing\\Middleware\\$
#13 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#14 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Il$
#15 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\\Pipeline\\Pipeline->then$
#16 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->runRout$
#17 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Router.php(622): Illuminate\\Routing\\Router->runRout$
#18 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Router.php(611): Illuminate\\Routing\\Router->dispatc$
#19 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router-$
#20 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kerne$
#21 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\$
#22 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Fideloper\\Proxy\\TrustProxies->h$
#23 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#24 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(31): Illumin$
#25 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Mid$
#26 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#27 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(31): Illumin$
#28 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Mid$
#29 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#30 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illumina$
#31 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Mid$
#32 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#33 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): I$
#34 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Mid$
#35 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Ill$
#36 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Il$
#37 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeli$
#38 /usr/home/RadoszSzymon/domains/e-mamy.pl/emamyAPI/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http$
#39 /usr/home/RadoszSzymon/domains/e-mamy.pl/public_html/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#40 {main}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从 android 上传图像文件到 laravel api - Upload image file to laravel api from android 将视频文件从 android 设备上传到 SpringBoot Rest API 的问题 - Issue to Upload video file from android device to SpringBoot Rest API 如何从Android设备上传位图图像? - How to upload Bitmap Image from a android device? 更改上传选项<input type="“file”" accept="“image/*”">从 android 设备查看时在网站中 - Change upload options for <input type=“file” accept=“image/*”> in website when viewed from an android device 图片从Android设备上传到.NET Web服务的问题 - Problems with image upload From Android device to .NET webservice 如何将图像从Android设备上传到Rails服务器? - How to upload image from Android device to Rails server? Android将图像从设备库上传到Amazon S3服务器 - Android Upload Image from device gallery to Amazon S3 server ionic 4 (android) 从图库 (FILE_URI) 获取图像 (OBJECT FILE) 并通过 API 上传 - ionic 4 (android) get image (OBJECT FILE) from gallery (FILE_URI) and upload via API Android studio 显示图像来自 Laravel API - Android studio Display image from Laravel API 如何使用 Google Drive API 从 android 将加密的图像文件上传到 Google Drive - How to upload encrypted image file on google drive from android using Google Drive API
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM