【问题标题】:Catch file uploaded size using Javascript event and cancel使用 Javascript 事件捕获文件上传大小并取消
【发布时间】:2012-01-30 08:12:00
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery asp.net dom-events


    【解决方案1】:

    AFAIK 上传时没有 javascript 事件来检查客户端的文件大小...并且由于您不想检查此服务器端,因此答案取决于浏览器,因为它需要客户端-侧 javascript API 能够满足您的需求。

    您可以为此使用 HTML5+Javascript(文件 API)...但请注意:有些 borwsers/浏览器版本不支持此功能...查看详细信息和示例:

    【讨论】:

    • 我想将它与 asp.net 一起使用,我只需要事件,我需要知道如何使用 asp.net 或 javascript 取消上传
    • @EslamSoliman AFAIK 上传时没有用于检查文件大小的 javascript 事件...您所要求的取决于浏览器,因为它需要一个能够满足您需求的 javascript API - 也就是说正是上面的链接提供的内容!
    【解决方案2】:

    我认为您无法从 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 
       }
    }
    

    【讨论】:

      【解决方案3】:

      Uploadify 是一个很好的 jQuery 上传文件插件,它有一个非常好的事件回调集合,包含关于正在上传的文件和上传进度的完整信息。

      【讨论】:

      • 它使用闪存,因为它在从服务器端上传之前知道大小
      猜你喜欢
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 2011-11-21
      • 2017-07-05
      • 2010-12-09
      相关资源
      最近更新 更多