6

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

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

就我所见,我只能在上传完成后获得文件的长度

就像上传开始时一样:

(OnClientUploadStarted)

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

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

上传完成后:

(OnClientUploadComplete)

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

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

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

我真的很想在不处理 HTTP 请求长度和排序的情况下做到这一点。

谢谢!

4

6 回答 6

6

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

if (sender._inputFile.files[0].size >= maxFileSize) {
    sender._stopLoad();
}

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

于 2013-12-09T16:58:21.457 回答
5

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

当我浏览 yahoo mail 和 gmail 之类的网站时,它是由 Flash 完成的。

在 hotmail 中,它是使用 Silverlight 完成的。

有一个名为 Uploadify 的免费(目前)Flash 上传控件...

我现在正在努力整合它。

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

于 2011-06-14T05:07:10.900 回答
0

FileUploadComplete您可以在服务器端的方法中检查它的大小

void FileUploadComplete(object objSender, AsyncFileUploadEventArgs e)
{
  if (e.get_length() > 1000000 )
  {  
      ShowActionNotificationError( errorMessage);
      return false;
  }
}
于 2011-06-13T08:00:10.137 回答
0

是的,米蒂尔所说的是正确的。使用 HTML 控件提供现代用户体验确实很麻烦。另一种选择是SWFUpload

于 2012-01-01T13:53:20.897 回答
0

如果您需要在内容实际上传到服务器之前检查文件大小,那么您最好使用 asp 组件 FileUpload。有了这个,您可以检查并决定是否要上传文件。

If FileUpload1.FileContent.Length <= DesiredFileSize Then

   <<Code to Upload the file>>

End If
于 2012-02-14T05:51:11.910 回答
0

2012 年 2 月 14 日 5:51

FileUpload1 no 对 UpdatePanel 有效:

与 UpdatePanel 控件不兼容的控件

以下 ASP.NET 控件与部分页面更新不兼容,因此不适合在 UpdatePanel 控件中工作:

几种情况下的Treeview控件。一种是启用不属于异步回发的回调时。另一种是直接将样式设置为控件属性,而不是使用对 CSS 样式的引用来隐式设置控件的样式。另一种是 EnableClientScript 属性为 false(默认为 true)时。另一个是如果您在异步回发之间更改 EnableClientScript 属性的值。

当您将样式直接设置为控件属性而不是使用对 CSS 样式的引用来隐式设置控件样式时的菜单控件。

FileUpload 和 HtmlInputFile 控制它们何时用于作为异步回发的一部分上传文件。

GridView 和 DetailsView 控件的 EnableSortingAndPagingCallbacks 属性设置为 true 时。默认值为假。

Login、PasswordRecovery、ChangePassword 和 CreateUserWizard 控件的内容尚未转换为可编辑模板。

替代控制。

要在 UpdatePanel 控件中使用 FileUpload 或 HtmlInputFile 控件,请将提交文件的回发控件设置为面板的 PostBackTrigger 控件。FileUpload 和 HtmlInputFile 控件只能在回发方案中使用。

于 2013-07-28T22:02:08.453 回答