laravel8中路由访问时间过长POST请求会被重定向为GET的问题有没有人遇到过的,谢谢解答。

这是一个简单的上传代码

    /**
     * 图片文件上传
     */
    public function images(): JsonResponse
    {
        sleep(45);
        $ext = request()->file('file')->extension();
        $size = request()->file('file')->getSize();
        $realPath = request()->file('file')->store('public/images');
        $viewPath = 'storage/' . substr($realPath, 7);
        $file = $this->uploadService->saveFile($ext, $size, 
            $realPath, $viewPath, FileEnum::IMAGE);
        return $this->success($file);
    }

上面我设置睡眠45秒后将会报一个问题,就是下面图片的错误

laravel8中路由访问时间过长会被重定向的问题有没有人遇到过的,谢谢解答。

下面这段代码是能正常访问的

    /**
     * 图片文件上传
     */
    public function images(): JsonResponse
    {
        $ext = request()->file('file')->extension();
        $size = request()->file('file')->getSize();
        $realPath = request()->file('file')->store('public/images');
        $viewPath = 'storage/' . substr($realPath, 7);
        $file = $this->uploadService->saveFile($ext, $size, $realPath, $viewPath, FileEnum::IMAGE);
        return $this->success($file);
    }

请问大家有遇到这个问题吗?如果涉及大文件上传的时候会有比较长的请求的时候会经常发生这个问题。非常感谢~

贴一下路由代码,环境是Apache,php7.3,所以没找到具体问题在哪


Route::prefix('upload')->middleware('auth:api')->group(function () {
    Route::post('images', [UploadController::class, 'images']);
});

原因找到了,很久没使用apache了,httpd.conf缺少下面的配置,加上就可以了

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

应该是php配置原因,和laravel没关系,具体问题还没找到。 :pensive:

是Apache的原因,有哪位大哥知道怎么配置Apache超时重定向时间吗,目前niginx不会出现以上问题。

3年前 评论

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