【问题标题】:Reset fileupload control from javascript从 javascript 重置文件上传控件
【发布时间】:2014-03-28 10:01:36
【问题描述】:

我有一个 ASP 网站页面,其中添加了上传控件

<asp:FileUpload ID="FileUpload1" runat="server" 
                        BorderStyle="None" Width="215px" onchange="return checkfile();" style="margin-left: 14px" BackColor="#F0F0F0" />

来自javascript,我正在验证将要上传的文件。如果它是.exe 类型,那么我将不允许上传和留言。如果不是,我将在标签 "lblFileName" 中显示文件名。但是如果出现错误(如果文件是 exe)的问题,那么我想重置上传控件(FileUpload1)。现在它将只显示消息,但允许表单与.exe 文件一起提交。那么我该如何重置它?

 function checkfile() {

     var filename = document.getElementById("FileUpload1").value;
     var lastIndex = filename.lastIndexOf("\\");


     if (lastIndex >= 0) {
         filename = filename.substring(lastIndex + 1);
     }

    var FileExt = filename.split('.').pop();

    if (FileExt == "exe") {  

        document.getElementById('<%=lblFileName.ClientID%>').innerHTML = "you cannot attach exe file";
    return false;

     }
    else {
        document.getElementById('<%=lblFileName.ClientID%>').innerHTML = filename;
    }
  }

【问题讨论】:

标签: javascript asp.net file-upload


【解决方案1】:

你的代码是问题onchange="return checkfile();"

你的函数应该是这样的

    function checkfile() {

         var filename = document.getElementById("FileUpload1").value;
         var lastIndex = filename.lastIndexOf("\\");


         if (lastIndex >= 0) {
             filename = filename.substring(lastIndex + 1);
         }

        var FileExt = filename.split('.').pop();

        if (FileExt == "exe") {         
            document.getElementById('lblFileName').innerHTML = "you cannot attach exe file";
            document.getElementById("FileUpload1").value='';
            return false;

         }
         else {
            document.getElementById('lblFileName').innerHTML = filename;
        }
      }

Return 将不允许文件放入您的文件上传控件中,因此这将解决您的问题

请在此处查看demo

【讨论】:

  • 我已经尝试过您提到的相同脚本,但它没有工作。检查有问题的屏幕截图
  • 你好,请添加这一行document.getElementById("FileUpload1").value='';我已经把我的功能检查上面的功能你忘了添加这一行
【解决方案2】:

我正在使用 jquery 这样做:

    $(function () {        
    $('<%= fileUploadCV.ClientID %>').change(function () {

        //because this is single file upload I use only first index
        var f = this.files[0]

        //here I check if the file size is bigger than 8 MB (numbers below are in bytes)
        if (f.size > 8388608 || f.fileSize > 8388608)
        {
           //show an alert to the user
           alert("Allowed file size exceeded. (Max. 8 MB)")

           //and RESET file upload control
           this.value = null;
        }
    })
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多