php跨域上传接口 小文件正常 大文件上传失败
我有个上传的功能,请求的是另一个服务器的接口,代码配置了cors 解决了跨域问题
但是现在是上传4G以内的文件都还正常, 但是我试了下上传10G的大文件 等传到100%时候就报错 提示跨域失败,但是我是配置了的Access-Control-Allow
相关错误见下图,求各位大佬帮看看咋回事呢
【========】
我设置了 nginx 超时配置 这些 还是报错 (从图片看 这个是响应了1.9分钟)
fastcgi_connect_timeout 30000;
fastcgi_send_timeout 30000;
fastcgi_read_timeout 30000;
client_header_timeout 30000;
client_body_timeout 30000;
应该是上传时间太长,网关那一层有个超时时间,到了超时时间,就直接返回,不等php处理完成。虽然php是设置的跨域的,但是网关那层没有。出现跨域失败提示,说明不是php那边返回的,肯定有某个地方返回了,而且浏览器的超时时间肯定是一样的。
你说 4G ,让我突然想到 fat32,最大支持 4G 文件,你看看文件系统支持吗?
有报错吗?提示什么了?(你这个报错全遮住了,怎么看?把域名,部分路径打吗就可以了吧)
我能想到的 2 点
file_uploads = on
,post_max_size,upload_max_filesize,max_execution_time 过期时间,大小限制等你这个是分片上传么,分片怎么写的,逻辑是怎么样的?
我猜是后端报错了,然后报错的执行流程,没有走你跨域的设置代码,所以就报跨域错误了,,,
是我是配置了的 Access-Control-Allow
代码里还是nginx上传大文件还是分片上传吧,这种失败率比较低
我们之前碰到这个问题, 原因就是 1 楼说的情况, 超时nginx返回, 你添加的header之类的没有返回, 浏览器就会认为是跨域