PHP Uploadify上传大文件(> 4gb)

时间:2013-09-17 15:04:42

标签: php file-upload uploadify jquery-file-upload

我使用Uploadify将文件上传到我的网站。 一切都适用于小于4GB的文件。但是当我尝试上传大于4GB的文件时 - 我收到此提醒:(来自客户端) enter image description here

在uploadify.js中

我的fileSizeLimit设置为0

fileSizeLimit: 0, // The maximum size of an uploadable file in KB (Accepts units B KB MB GB if string, 0 for no limit)

我试图增加它,这不是问题。

看看这个:(来自uploadify.js)

    // Run the default event handler
    if ($.inArray('onSelectError', settings.overrideEvents) < 0) {
        switch(errorCode) {
            case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
                if (settings.queueSizeLimit > errorMsg) {
                    this.queueData.errorMsg += '\nThe number of files selected exceeds the remaining upload limit (' + errorMsg + ').';
                } else {
                    this.queueData.errorMsg += '\nThe number of files selected exceeds the queue size limit (' + settings.queueSizeLimit + ').';
                }
                break;
            case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
                this.queueData.errorMsg += '\nThe file "' + file.name + '" exceeds the size limit (' + settings.fileSizeLimit + ').';
                break;
            case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
                this.queueData.errorMsg += '\nThe file "' + file.name + '" is empty.';
                break;
            case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
                this.queueData.errorMsg += '\nThe file "' + file.name + '" is not an accepted file type (' + settings.fileTypeDesc + ').';
                break;
        }
    }

并且文件肯定不是0字节!这是9.9GB

有什么问题?

谢谢,对不起我的英文

2 个答案:

答案 0 :(得分:1)

我一直在努力解决这个问题,并一直在与SWFUpload创建者交谈。

问题出在flash(它是将文件大小并发送给JS),它不会读取&gt; 4GB文件并抛出0大小,它是用作充满漏洞的spybot的蹩脚软件(J 。罗伯茨关于他为什么停止开发SWFUpload的说法)“Flash开发环境有太多错误。我报告了Flash 8中存在的仍然没有在Flash 11中修复的错误。他们将Flash变成了一个美化的视频播放器和广告/跟踪工具似乎忽略了任何其他用例。“....没有任何帮助甚至在更新的Flash版本下编译它并重写代码,看起来Flash有一些安全问题或bug问题(你现在已经编译了SWFUpload)在Flash 9下,我在Flash 11下重新编译它并没有帮助),64位等等......所以:放弃,你不会通过Flash上​​传文件&gt; 4GB(依赖于浏​​览器的那些几乎都是32bit) )。 HTML5也会出错,问题不在php设置中,无论如何通过php传递&gt; 4GB文件到网络服务器是个大错,我是怎么解决的:

我正在使用我的网络服务器(nginx)上传模块,因此我可以上传最高20GB的文件[网页浏览器限制],这不会通过php,因此它是安全稳定的。

顺便说一下。如果我没记错的话它上传的文件&lt; 4GB,但看到的文件大小只是2147483647字节。在SWFUpload上使用调试模式,因此您可以看到它:)

答案 1 :(得分:0)

我想知道你是否会考虑使用不同的上传脚本? Simple2FTP(http://www.simple2ftp.com)没有文件大小限制,您可以自定义使用的模板 - 甚至可能集成您自己的脚本以与后端数据库一起使用。

我知道这个脚本不需要更改任何服务器php.ini设置,如upload_max_filesize或post_max_size等。

只是一个......