如何在选择文件后自动上传文件
我有以下代码用于在我的网站上传文件:
@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绑定到控制器来实现这一点。
我没有使用Microsoft.web库,但如果你可以在文件上传后自动调用java脚本函数,那么你也可以实现。
如果您可以在此行中调用javascript函数:
@Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false)