有关使用php和html5上传文件大小有多大的想法吗?
和
有没有关于良好组件或示例的建议?
非常感谢!
答案 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_size和upload_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