如何在选择文件后自动上传文件

我有以下代码用于在我的网站上传文件:

@using (Html.BeginForm("UploadProfileImage", "Member", FormMethod.Post, new { @encType = "multipart/form-data" })) { @Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false) @ViewData["SuccessMessage"]  } 

我想这能够在用户从“浏览”按钮中选择文件后自动发布。 目前,每次用户选择要上传的文件时,用户都必须单击上传,无论如何要自动执行此过程?

文件上传控件支持onchange事件。 希望可以用来触发上传

 

ASP:

  

代码隐藏:

 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { System.Web.HttpPostedFile file = Request.Files["fUpload"]; if (file != null && file.ContentLength > 0) { file.SaveAs(@"C:\dir\"+System.IO.Path.GetFileName(file.FileName)); } } } 

asp:FileUpload而不是输入:

ASP:

  

代码隐藏:

 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { if (fuFile.PostedFile.FileName != string.Empty && fuFile.PostedFile.ContentLength > 0) { fuFile.PostedFile.SaveAs(@"C:\dir\" + fuFile.FileName); } } } 

FileUpload 不支持任何类型的自动上传所选文件到服务器。 您将不得不提供某种机制 – 请参阅MSDN

保存上传的文件

用户选择要上载的文件后,FileUpload控件不会自动将文件保存到服务器。 您必须明确提供允许用户提交指定文件的控件或机制。 例如,您可以提供用户单击以上载文件的按钮。 为保存指定文件而编写的代码应调用SaveAs方法,该方法将文件内容保存到服务器上的指定路径。 通常,在事件处理方法中调用SaveAs方法,该方法将事件提升回服务器。 …

我能够用telerik coltrol做到这一点。 我相信你可以找到一些免费工具,通过Ajax绑定到控制器来实现这一点。

http://demos.telerik.com/aspnet-mvc/razor/upload

我没有使用Microsoft.web库,但如果你可以在文件上传后自动调用java脚本函数,那么你也可以实现。

如果您可以在此行中调用javascript函数:

 @Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false)