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秒后将会报一个问题,就是下面图片的错误
下面这段代码是能正常访问的
/**
* 图片文件上传
*/
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>
推荐文章: