我有一个Web应用程序,可以接受最多4 MB的文件上传.服务器端脚本是PHP,Web服务器是NGINX.许多用户要求大幅提高此限制以允许上传视频等.
然而,PHP的这个问题似乎没有简单的解决方案.首先,在客户端,我正在寻找允许我在传输过程中块文件的东西.SWFUpload似乎没有这样做.我想我可以使用Java FX流式传输上传(http://blogs.oracle.com/rakeshmenonp/entry/javafx_upload_file),但我在PHP中找不到任何等效的request.getInputStream.
增加浏览器client_post限制或php.ini上传或max_execution时间并不是真正大文件(~1GB)的真正解决方案,因为浏览器可能会超时并想到存储在内存中的所有blob.
有没有办法在服务器端使用PHP解决这个问题?谢谢你的回复.
我用PHP制作了一个上传页面,但我不知道为什么页面不会上传大于500MB的文件,这是我第一次尝试上传大的东西,我改变了PHP.INI中的所有配置(post_max_size = 700M) ,upload_max_filesize = 600M,max_execution_time = 300).上传代码如下
if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){
move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName);
}
Run Code Online (Sandbox Code Playgroud)
我需要帮助,我想知道是否有些事情做得不对..
我在项目中工作,允许我们的员工将大文件上传到我们的共享主机并获取下载链接.问题是我们的主机拒绝为共享主机更改LimitRequestBody.还有其他解决方案可以解决LimitRequestBody或其他任何方式来完成这项工作吗?
我正在尝试使用php脚本上传1GB大小的文件,如果文件大小小于20MB,它可以正常工作,但是当我增加文件大小比按下网站上的上传按钮后,它上传文件(我想它需要几分钟)之后,而不是执行upload.php,我的firefox要求我下载upload.php,所以我猜,文件正在上传,但我的PHP脚本无法执行.
在谷歌搜索后,我发现我做的php.ini的以下设置,我的php_info()函数显示我的设置已被更改..
/ *php.ini start* /
memory_limit = 512M
post_max_size = 15000M
file_uploads =开
upload_max_filesize = 15000M
max_input_time = 20000
max_execution_time = 20000
session.gc_maxlifetime = 20000
/ *php.ini结束* /