php - laravel rest api 上传文件到服务器

标签 php android laravel rest base64

我正在使用 laravel 创建一个 REST api,允许用户从他们的 android 设备中选择一个图像文件,然后将其上传到服务器。法师在与其他参数一起发送到服务器之前被转换为 base64。我想将此 base64 转换为文件并将其存储在服务器上,然后生成一个可用于访问它的链接。到目前为止,这是我尝试过的方法,但没有用:我已经创建了一个指向存储的符号链接(symbolic link)

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包,已经使用了很多年,我可以说它会做你想做的,而且非常好。

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

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

归根结底,文件只是数据,如果您总是在获取其他数据时获取文件,请减少步骤并将相关数据放在一起。

不管怎样,希望你能解决它:)

关于php - laravel rest api 上传文件到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47889071/

相关文章:

android - POI : duplicate entry: org/apache/xmlbeans/xml/stream/Location. 类

php - 将 hasManyThrough 应用于更深层次的关系

php - 如何在 Laravel 中使用 Redis 缓存?

PHP mysql array_diff 不匹配所有字段

php - 共享主机是否授予对 INFORMATION_SCHEMA 的访问权限?

android - 检查给定的电子邮件是否存在

以秒为单位的两个日期之间的Android差异

php - 如何使用 PHP 在 MySQL 中选择选定的行?

php - htaccess 正则表达式 vs php 手动参数解析

php - 递增包含整数的字符串会出错