请问为什么 Laravel 无法解析 unity 生成的 gif?这里有什么特别的验证机制吗

系统环境:#

  • ubuntu 16.04
  • php7.0
  • laravel 5.5

    接口代码:#

    use Illuminate\Http\Request;
    use App\Http\Controllers\Controller;
    use Illuminate\Support\Facades\Storage;
    
        $uid = $request->uid;
        Storage::disk('public_path')->putFileAS('myLike', $request->file('photo'), $uid . '.gif');
        return env('APP_URL') . '/myLike/?uid=' . $uid;

    问题:#

    公司有一个项目,前端使用 unity 拍照生成 gif 图片上传到服务器端。使用网上的 gif 图片用 postman 测试接口,一切正常,上传没有。然而使用 unity 生成的 gif 图片用 postman 测试却报错:

下面是出现问题 gif:

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 10

fopen(/home/api/public

很明显了嘛,最后的文件名没拼接上。

7年前 评论

@johnlui 可能我没表述清楚,如果是文件名没拼接上,那应该所有 gif 图片都不能上传,可是别的 gif 可以上传

7年前 评论

那就是这张图片转换失败,得到的文件名是 null

7年前 评论

@johnlui 应该也不是,报错信息显示识别的是个文件夹。。。如果识别为 null,报错不应该是这样

7年前 评论

@johnlui 会不会是生成的 gif 头标识符有问题,让 laravel 识别成了文件夹

7年前 评论

文件路径是 文件夹.$fileName,如果文件名为 null 可不就剩文件夹了嘛

7年前 评论

@johnlui 我保存的文件路径是 myLike/$uid.gif ,$uid 是标识,应该不会是为 null,报错里已经显示出了 $uidtest2312

7年前 评论

如果你只是像保存一下文件,不用这么繁琐的。。。。

$request->file('photo')->move(public_path().'myLike', $uid . '.gif');
7年前 评论

目测这张图片触发了 Storage 的一个 bug

7年前 评论

@johnlui 我去反馈一下试试,非常感谢老哥的帮助

7年前 评论