2016-10-24 43 views
23

我在项目中工作,允许我们的员工上传大文件到我们的共享主机并获取下载链接。问题是我们的主机拒绝更改共享主机的LimitRequestBody。有任何其他解决方案可以解决LimitRequestBody或任何其他方式来完成这项工作?解决错误413请求实体太大

+0

你尝试过什么吗? 我认为你可以在上传之前将数据分成少部分并压缩它! – Fky

+0

@Fky我做这个项目给我们的员工可以不需要我更新数据,我现在做的是我打开我的主机ftp并上传文件。但我需要做脚本来上传这些数据而不需要我,它已经适用于小于100MB的小数据。 –

+0

是的,但你的脚本可以在你的ftp服务器上运行并且分割数据+在上传前压缩它 – Fky

回答

12

两种方式使它工作,手动块上传或工具。可以使用Real Ajax Uploader工具。它可以与html5一起使用,文件的上传是通过块来完成的,对服务器的性能和稳健性有小的要求。

或者手动将文件拆分成许多块,然后逐个上传。您可以使用7-zip来分割文件并合并文件。这里是一个tutorial

对于客户分割也参考File uploads; How to utilize "chunking"?

对于服务器块相结合可以参考Handling plupload's chunked uploads on the server-sidehttp://www.phpclasses.org/package/8858-PHP-Create-and-merge-Zip-archives-split-in-parts.html

希望它帮助。

3

您可以覆盖的upload_max_filesizepost_max_size默认值。二者皆INI设置有变化模式PHP_INI_PERDIR,这意味着你可以使用下面的

的php.ini,htaccess的,httpd.conf中的一个,.user.ini

由于您使用的共享主机所以最合适的选项的.htaccess.user.ini

您可以参考此设定值使用htaccess Set php Ini settings using htaccess

+2

这是值得一试,但如果它的作品,你应该改变托管服务提供商。任何允许客户使用''的共享主机提供商。htaccess'或'ini_set'等内容来覆盖他们特别说的“不”是一个托管服务提供商,您应该立即离开,因为其他客户会点击,发现其他漏洞,并很快滥用服务并将您的网站停用。良好的共享主机提供商也将阻止您覆盖他们想要控制资源使用情况的全局设置。 – Robbie

+0

我已经改变了PHP的设置,但'LimitRequestBody'它是一个Apache设置,我试图改变.hraccess的限制,但不工作,我的主机拒绝改变它。我测试的限制,我认为它的100MB,但我需要使它200MB –

+0

@SamirNabil 200 MB听起来巨大。这些是什么类型的文件?就是想。你确定底层流程本身有意义吗? –