laravel rest api将文件上传到服务器

问题描述 投票:1回答:1

我正在创建一个带有laravel的REST api,允许用户从他们的Android设备中选择一个图像文件,然后将其上传到服务器。在将图像与其他参数一起发送到服务器之前,该图像将转换为base64。我想将此base64转换为文件并将其存储在服务器上,然后生成可用于访问它的链接。这是我到目前为止所尝试的,它不起作用:我已经创建了一个存储符号链接

public function create(Request $request)
{
        $location = new Location();
        $location->name = $request->location_name;
        $location->latitude = $request->latitude;
        $location->longitude = $request->longitude;

        $location->saveOrFail();

        $provider = new Provider();
        $provider->name = $request->provider_name;
        $provider->location_id = $location->id;
        $provider->category_id = $request->category_id;
        $provider->description = $request->description;
        $provider->image = request()->file(base64_decode($request->encoded_image))->store('public/uploads');


        $provider->saveOrFail();

        return json_encode(array('status'=>'success', 'message'=>'Provider created successfully'));


}
php android laravel rest base64
1个回答
5
投票

正如Amando已经评论过的那样,你可以使用Intervention/Image软件包,使用它已经很多年了,我可以说它会做你想要的和非常好的。

我还要补充的是,您可能还想考虑一下,您是否确实需要将其存储为文件。

根据它的用途和大小等,您可以考虑将其与任何其他信息一起存储在数据库中。这消除了对文件服务器的依赖性,并使您的应用程序在基础结构要求方面更加灵活。

在一天结束时,文件只是数据,如果您在获得其他数据时始终获取文件,请减少步骤并将相关数据保存在一起。

无论哪种方式,希望你得到它排序:)

© www.soinside.com 2019 - 2024. All rights reserved.