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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel rest api将文件上传到服务器相关的知识,希望对你有一定的参考价值。

我正在创建一个带有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'));


}
答案

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

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

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

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

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

以上是关于laravel rest api将文件上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章

上传图片到 Laravel-Lumen API

以 InputStream 格式将文本文件从 .Net http 客户端上传到 Java REST API

如何使用 REST API 将文件和附件上传到 sobject 记录?

使用 Angular2 将文件上传到 REST API

将文本文件从.Net http客户端上传到InputStream格式的Java REST API

通过 REST API 上传多部分文件会损坏文件并增加文件大小