我有一个PHP表单,它在提交时接受选定的zip文件,并使用AJAX发布到AmazonS3存储桶。当我测试10MB或更少的zip文件时,这个过程会很好,但当我测试超过500MB的文件时,我会得到以下错误:
Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed.
我需要能够允许上传多达5GB的zip文件。在这一点上,我需要更好地了解我需要做什么来允许用户上传大文件。非常感谢您的帮助。
附言:我很乐意添加代码片段,但我希望得到一个回复来显示必要的片段,而不是发布一堆无关的代码。
如果我记得很清楚,也许你应该增加php.ini文件中的post_max_size
变量(或使用ini_set()),默认情况下设置为10MB。你还应该看看upload_max_filesize
变量和max_execution_time
,因为我想上传5GB需要很长时间。。。
如果您的问题与JQuery/Ajax有关,那么您可能应该考虑使用FormData对象。
使用jQuery.ajax 发送多部分/表单数据
https://developer.mozilla.org/en-US/docs/Web/API/FormData
好吧,最后我不得不使用AmazonSDK来分块大文件。这样可以将文件分解为多个部分,从而防止服务器超时。