【问题标题】:How to asynchronously send all the uploaded files at once in MVC Telerik Upload Control?如何在 MVC Telerik Upload Control 中一次异步发送所有上传的文件?
【发布时间】:2012-04-19 08:56:43
【问题描述】:

我正在为我的 MVC3 应用程序使用 Telerik 文件上传控件。我正在使用它的异步功能来上传文件。 下面是我正在使用的代码。

@(Html.Telerik().Upload()
        .Name("files")
        .ShowFileList(true)    
        .Multiple(true)                                    
        .Async(
                async => async
                .Save("Save", "MyController")
                .AutoUpload(false)
                .Remove("Remove", "MyController")                            
            )
    )

[HttpPost]
        public ActionResult Save(IEnumerable<HttpPostedFileBase> files)
        {            
            foreach (var file in files)
            {
                // Some browsers send file names with full path. We only care about the file name.
                var fileName = Path.GetFileName(file.FileName);
                var destinationPath = Path.Combine(Server.MapPath("~/App_Data"), fileName);

                file.SaveAs(destinationPath);
            }
            return Content("");
        }

上面的代码将生成两个按钮,即。 “选择”和“上传文件”。选择 4 个文件并按下“上传文件”按钮后,telerik 异步调用操作方法 4 次(这很糟糕)。我想要的是该方法应该只调用一次,并且所有 4 个文件都应该一次发送到该方法(因为我正在接受文件列表)。

那么,如何在 Html.Telerik().Upload() 控件中实现这一点?

另外,我将在我的 Html.Telerik().Window() 中显示此控件,因此我需要将上传的数据发送到我的父页面。任何帮助如何做到这一点?

谢谢。

【问题讨论】:

    标签: jquery asp.net-mvc asp.net-mvc-3 telerik telerik-mvc


    【解决方案1】:

    作为建议,如果您要将文件作为具有其他值的表单帖子的一部分进行处理,您可以考虑让文件异步上传。为此,我使用隐藏的表单字段将 ID 与上传的文件相关联,并将该值包含在 onUpload(e) 客户端事件的 e.data 参数中。这样,您可以在将文件保存在临时位置时验证表单,并处理表单发布以及与您的 ID 关联的文件。

    否则,如果您绝对想要同步,根据 Telerik 的文档,您应该可以毫无问题地进行多次同步上传。

    http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-upload-synchronous-upload.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多