我已经在php中将两个PDF文件上传到服务器。但它们是正确上传的,但在上传较大的文件时我收到错误。我使用mysql服务器
如何在php上传大文件(100 mb)?
答案 0 :(得分:6)
从php.ini默认设置:
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M
如果您想要更大的上传,请更改此值。
我不完全确定,但我不认为ini_set会在这种情况下起作用。您需要直接访问php.ini
答案 1 :(得分:3)
我不会更改upload_max_filesize。使用HTTP POST上传大文件并不能提供任何关于上传剩余时间的反馈等信息。对于大多数浏览器,页面只是在文件上传时挂起。如果客户端上传文件的时间太长,您也会遇到脚本超时问题。根据您之后是否在PHP中处理文件,您还可能遇到内存耗尽的问题。
我们使用PLUpload http://www.plupload.com将文件分块成小块并上传每个块。在服务器上,PHP脚本将获取每个POST文件块并将其附加到现有块以重建另一侧的大文件。我们已经测试了几百MB的文件。这样做效果更好,为用户提供了更好的用户体验。
利奥
答案 2 :(得分:2)
添加Tom van der Woerdt关于upload_max_filesize的答案:
有可能,还必须更改默认执行限制,否则在您上传大文件时脚本会超时。
另请参阅:
post_max_size
max_input_time
max_execution_time
答案 3 :(得分:2)
您可能需要在php.ini文件中更改以下选项:
upload_max_filesize(仅限php.ini或.htaccess,使用ini_set()无效)
post_max_size(同上)
memory_limit(同上)
以下是每个选项的解释:
PHP使用的3种设置限制了您的上传功能:
的post_max_size
这是表单上发送的所有文件的最大组合大小。如果表单上有2个文件字段,则2个文件的总文件大小不得超过post_max_size值。
的upload_max_filesize
这是每个文件的文件大小限制。
memory_limit的
PHP脚本有内存限制,一般来说这可以防止某些上传工作。限制应该设置在合理的水平,当然你不需要20mb的简单“hello world”脚本。如果您发现上传仍无效,请尝试慢慢增加此值。
答案 4 :(得分:1)
设置max_upload_size和post_max_size的建议是正确的,但在某些安装中仍可能遇到问题。设置这些值时要记住的一件事是post_max_size至少是max_upload_size值的两倍。换句话说,如果将max_upload_size设置为100mb,则post_max_size必须为200mb,否则设置将被拒绝,引擎将使用默认设置2mb和8mb。此外,您需要确保memory_limit至少是max_upload_size的大小。如果你提高了帖子并上传了大小,但是你没有分配足够的内存,那么你仍然会遇到问题。