从javascript重置fileupload控件

时间:2014-03-28 10:01:37

标签: javascript asp.net file-upload

我有一个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;
    }
  }

enter image description here

2 个答案:

答案 0 :(得分:5)

您的代码是问题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;
        }
      }

返回将禁止文件放入文件上传控件,这样就可以解决您的问题

请在此处查看 demo

答案 1 :(得分:0)

我是这样使用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;
        }
    })
});