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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 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年前 评论