使用PHP和html5上传的最大文件大小?

时间:2013-01-29 07:02:51

标签: php html5 upload

有关使用php和html5上传文件大小有多大的想法吗?

有没有关于良好组件或示例的建议?

非常感谢!

3 个答案:

答案 0 :(得分:2)

PHP在大文件上传方面非常糟糕,特别是因为你的内存限制要高于文件的大小。同样,32位系统上的Apache本身也有2gig文件限制,所以即使PHP可以处理上传,Apache也会窒息。

您需要在php.ini中设置upload_max_filesize和post_max_size的值:

上传文件的最大允许大小。 upload_max_filesize = 40M

必须大于或等于upload_max_filesize post_max_size = 40M

如果你不能改变你的php.ini,那你就不走运了。您无法在运行时更改这些值;上传文件大于php.ini中指定的值将在执行到达ini_set时失败。

请参阅Description of core php.ini directives

上传文件的最大大小为整数。 使用整数时,该值以字节为单位

答案 1 :(得分:2)

在服务器端,最大上传大小受php post_max_sizeupload_max_filezize的限制。

此外,您的网络服务器可以限制帖子正文的最大尺寸。例如。 Apache limitrequestbody默认为0 = unlimited或nginx client_max_body_size,默认为2MB

如果您打算使用html5上传大文件,可能需要查看所有现代浏览器都支持的file.slice

  

在File API中支持.slice   Firefox支持Blob API和随附的.slice API。这可以帮助那些想要从JavaScript处理大型File对象的部分而无需将整个文件加载到内存中的人。可靠地上传大文件的人可以使用一些服务器和JS代码将大文件拆分成多个部分并上传块,包括重新尝试失败的部分,甚至并行上传几个部分。

使用此功能,您可以以块的形式上传巨型文件,并再次在服务器端合并它们。

修改

发现这篇很棒的文章通过xhr

流媒体解释html5上传

http://www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/

此过程的内存占用非常低,您可能仍会遇到Web服务器和php上传限制,因为这是通过单个请求完成的。该代码应该让您了解整个技术的工作原理。

答案 2 :(得分:0)

最大文件大小值在phi.ini文件中定义。

在php.ini中搜索

上传文件的最大允许大小。

upload_max_filesize = 32M