使用Javascript事件捕获上载的文件大小并取消

使用Javascript事件捕获上载的文件大小并取消,javascript,jquery,asp.net,dom-events,Javascript,Jquery,Asp.net,Dom Events,我有一个文件加载器。我不想检查服务器端的文件大小,我需要某种类型的侦听器来获取每个时段上载的文件大小,并检查是否允许使用Javascript,我使用的是asp.net文件上载程序。AFAIK上载时没有Javascript事件来检查客户端的文件大小。。。由于您不想检查这个服务器端,所以答案取决于浏览器,因为它需要一个能够满足您需要的客户端javascript API 你可以使用HTML5+Javascript(文件API)来实现这个。。。但要注意:有些浏览器版本并不支持这一点。。。请参阅详细信息和

我有一个文件加载器。我不想检查服务器端的文件大小,我需要某种类型的侦听器来获取每个时段上载的文件大小,并检查是否允许使用Javascript,我使用的是asp.net文件上载程序。

AFAIK上载时没有Javascript事件来检查客户端的文件大小。。。由于您不想检查这个服务器端,所以答案取决于浏览器,因为它需要一个能够满足您需要的客户端javascript API

你可以使用HTML5+Javascript(文件API)来实现这个。。。但要注意:有些浏览器版本并不支持这一点。。。请参阅详细信息和示例:


    • 我认为您无法从javascript获取文件大小的详细信息,您可以做什么,您可以在脚本块的帮助下从服务器端访问它。像这样

      protected void btnFileUpload1_Click(object sender, EventArgs e)
      {
          int filesize; 
          filesize = FileUpload1.PostedFile.ContentLength; //to get the Size of uploaded files 
          if(filesize > yourMaxLength)
          {
                 string errorScript = "<script type=\"text/javascript\">" +
               "alert('Invalid File, you cannot upload file exceeding ' + filesize );" +
                            "</script>";
               ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", errorScript);
          }
         else
         {
               //proceeed with upolad successful operation 
         }
      }
      
      protectedvoid btnFileUpload1\u单击(对象发送方,事件参数e)
      {
      int文件大小;
      filesize=FileUpload1.PostedFile.ContentLength;//获取上传文件的大小
      如果(文件大小>最大长度)
      {
      字符串errorScript=“”+
      警报('无效文件,您无法上载超过'+文件大小]的文件;'+
      "";
      RegisterClientScriptBlock(this.GetType(),“alert”,errorScript);
      }
      其他的
      {
      //upolad操作成功
      }
      }
      
      是jQuery上传文件的一个不错的插件,它有一个相当不错的事件回调集合,关于正在上载的文件和上载进度的完整信息。

      我想将其与asp.net一起使用,我需要的只是事件,我需要知道如何使用asp.net或javascript@EslamSolimanAFAIK上传时没有javascript事件检查文件大小。。。您所要求的是浏览器依赖性,因为它需要一个能够满足您需要的javascript API——这正是上面的链接所提供的!它使用flash,因为它在从服务器端上传之前知道大小