请问为什么 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:

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 10

fopen(/home/api/public

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

6年前 评论

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

6年前 评论

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

6年前 评论

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

6年前 评论

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

6年前 评论

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

6年前 评论

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

6年前 评论

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

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

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

6年前 评论

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

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!