2014-06-18 85 views
2

我正在使用kendo-ui上传,我想过滤文件(只允许选择.jpg,.png),但我不知道要在javascript中实现,请帮助我!
如何过滤文件kendo-ui上传?

1- .cshtml文件

<input name="files" id="files" type="file" />

2- JavaScript的

$(document).ready(function() { 
    $("#files").kendoUpload({ 
     multiple: false, 

     async: { 
      saveUrl: "Home/Save" 
     } 
    }); 
}); 
+0

我不太清楚你的问题是什么意思。你只是想能够从这个页面上传最多一个文件吗? –

+0

Hi @DavidShorthose,我只想在选择要上传的文件时想要过滤文件。 – admin

回答

4

要过滤的文件,执行如下:

<input name="files" id="files" type="file" accept=".jpg,.png"/> 
+0

这是您必须执行的操作,但您也应该使用JavaScript进行验证,因为用户只需在浏览弹出窗口中选择*。*即可。 – Andrew

1

你必须使用onSelect事件为和限制要计数。

http://docs.kendoui.com/api/web/upload#select

http://demos.kendoui.com/web/upload/events.html

function onSelect(e) { 
    if (e.files.length > 1) { 
     alert("Please select only 1 file."); 
     e.preventDefault(); 
    } 
} 
+0

问题不在于管理员代码中已经限制的文件数量。这样做的正常方式是直接阻止浏览弹出窗口选择多个文件并完成。如果用户花费时间选择几个文件以后才会得到错误消息,那将是不好的用户体验。 – Andrew

3

指定 '选择' 事件处理程序,当你初始化你的剑道上传插件:

$(document).ready(function() { 
    $("#files").kendoUpload({ 
     multiple: false, 
     async: { 
      saveUrl: "Home/Save" 
     }, 
     select: onSelect, 
    }); 
}); 

然后用它来处理文件选择事件:

 function onSelect(e) { 
      var files = e.files 
      var acceptedFiles = [".jpg", ".jpeg", ".png", ".gif"] 
      var isAcceptedImageFormat = ($.inArray(files[0].extension, acceptedFiles)) != -1 

      if (!isAcceptedImageFormat) { 
        e.preventDefault(); 
        alert("Image must be jpeg, png or gif"); 
       } 
     }