AsyncFileUpload限制要上载的文件大小

Mit*_*hir 4 javascript asp.net ajax asyncfileupload

我正在使用AsyncFileUpload以允许用户异步上传文件.

我想将文件的大小限制为1MB.

到目前为止,我看到的只能在上传完成时得到文件的长度

比如上传开始时:

(OnClientUploadStarted)

function UploadStarted(sender,args) 
{
   //if bigger than 1MB (approximately)
   if (args.get_length() > 1000000 ) 
   {
       ShowActionNotificationError( errorMessage); 
       return false;  
    }
}
Run Code Online (Sandbox Code Playgroud)

args.get_length()为null,所以我不能使用它...

上传完成后:

(OnClientUploadComplete)

function UploadComplete(sender,args) 
{
    //if bigger than 1MB (approximately)
    if (args.get_length() > 1000000 ) 
    {
        ShowActionNotificationError( errorMessage); 
        return false;  
    }
}
Run Code Online (Sandbox Code Playgroud)

工作正常,但文件已经上传...

那么在上传之前如何知道文件的大小呢?我错过了一些非常简单的事吗?

我真的想在不处理HTTP请求长度和排序的情况下这样做.

谢谢!

小智 6

您可以在客户端上传开始事件中执行此操作。

if (sender._inputFile.files[0].size >= maxFileSize) {
    sender._stopLoad();
}
Run Code Online (Sandbox Code Playgroud)

_stopLoad 将调用您的上传错误事件。


Mit*_*hir 5

经过一些实质性的研究后,我意识到使用AJAX无法做到这一点.

当我浏览雅虎邮件和Gmail这样的网站时,它是由Flash完成的.

在Hotmail中,它完成了Silverlight.

有一个名为Uploadify的免费(现在)Flash上​​传控件...

我现在正致力于整合它.

如果我错了请纠正我!:)