无法使用带有rRazor的Kendo Upload过滤文件

时间:2017-03-29 15:16:14

标签: javascript razor kendo-ui kendo-ui-mvc

我没有看到关于这个主题的信息,除了有关如何在使用最新的Kendo库时过滤文件的信息。所以我发布了如何在需要的时候让其他人使用它。

1 个答案:

答案 0 :(得分:0)

这是在Razor语法中使用的剑道:

@(Html.Kendo().Upload()
                      .Name("procfiles")
                      .Async(a => a
                          .Save("SavePF", "AccountEvent", new { id = Model.SeqNum })
                                  .Remove("RemovePF", "AccountEvent", new { id = Model.SeqNum })
                          .AutoUpload(true)

                      ).Files(f =>
                      {
                          if (Model != null && !string.IsNullOrEmpty(Model.ProcedureFile))
                          {
                              f.Add().Name(Path.GetFileName(Model.ProcedureFile));
                          }
                      })
                      .Multiple(false)
                      .ShowFileList(true)
                      .Events(e =>
                      {
                          e.Error("accountEventEditController.uploadProcFileError");
                          e.Select("accountEventEditController.onProcFileUploadSelect");
                          e.Upload("accountEventEditController.onProcFileUpload");
                          e.Success("accountEventEditController.onProcFileSuccess");
                          e.Remove("accountEventEditController.onProcFileRemove");
                          e.Complete("accountEventEditController.onProcFileComplete");
                      })
                    )       

正如您所看到的,您可以加入"选择"事件。然后我有一个.js控制器处理程序文件,它执行以下代码来过滤文件类型。

var onChkFileUploadSelect = function (e, type) {

    var files = e.files;
    var acceptedFiles = [".pdf", ".xlsx"];
    var isAcceptedImageFormat = ($.inArray(files[0].extension, acceptedFiles)) != -1;
    console.log(files[0].extension);       

     if (!isAcceptedImageFormat) {

        e.preventDefault();

        $(targetErrorControl).fadeIn('slow').delay(3000).fadeOut('slow');
    }
}

希望这有助于那些人。