繁体   English   中英

防止在Opera Mini上上传大文件

[英]Prevent uploading large files on Opera Mini

我遇到了一个非常有趣的问题。 我们已经从Apache切换到Nginx,并且我们具有文件上传功能,这在Nginx中存在问题。 如果要上传的文件太大,则会显示错误消息:

413请求实体太大

nginx / 1.4.6(Ubuntu)

这是由于我们对文件大小有限制,我们不接受服务器上大于2 MB的文件。 但是,这不是用户友好的错误,因此我们希望隐藏技术细节并以用户友好的方式通知用户。 我实现了一项功能,该功能适用​​于Opera Mini以外的所有浏览器。 我将从中删除一些细节,因为它们与问题无关:

if (isOperaMini()) {
    $("#opera-mini-photo-form").submit(function(e) {
        if (document.getElementById("opera-input").files[0].size >= 1048576) {
            e.preventDefault();
            alert"Invalid or too large file");
        }
    });
} else {
    //some code for other browsers
}

如果浏览器是Opera Mini,则submit事件中的if始终为false并且始终提交form 我已经检查了在其他浏览器中为Opera Mini编写的代码,以查看是否实现了某些错误。 在其他浏览器中也可以。 我试图在Opera Mini中警告以下值:

document.getElementById("opera-input").files[0].size

alert未发生。 现在,如果考虑到Opera Mini使用Opera代理浏览Web的事实,我想知道Javascript是否实际上在代理服务器上运行。 如果是这样,它将解释为什么我无法检查文件大小。 如果不是,那么我不知道是什么原因引起的。 我应该用什么代替

document.getElementById("opera-input").files[0].size

检查文件的大小?

document.getElementById("opera-input").files是一个File API。

Opera Mini中未启用文件API。

简单的fiddle来检查。

因此最好检查服务器上的文件大小,并在响应HTML中添加有关文件大小的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM