使用php oss sdk上传图片老是出现 RequestCoreException: cURL resource: Resource id #107; cURL error: Empty reply from server (52)
当文件尺寸变小的话,并且缓存过文件的尺寸也会造成上面的问题。
putObject 文档中有这么个参数:
Content-Length 字符串 否 用于描述HTTP消息体的传输大小。 如果请求头中的Content-Length值小于实际请求体中传输的数据大小,OSS仍将成功创建Object,但Object的大小只能等于Content-Length中定义的大小,其他数据将被丢弃。
但是文档中并没有说小于的情形。
当文档的实际大小小于Content-Length的时候就会出现上面的问题,服务器一直等待,但是并没有那么多数据,然后直到超时。
OSS 的 Content-Length 是使用filesize函数获取的,但是PHP的filesize是会缓存的。
解决方案就是在上传前,使用clearstatcache清除缓存。
Filesize fails to get the real file size after each append with file_put_contents
赞4
踩0