想要在我的按钮点击事件上上传多个文件

这是我的.aspx页面代码

.aspx.cs代码是

  protected void OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e) { string fileName = Path.GetFileName(e.FileName); AjaxFileUpload1.SaveAs(Server.MapPath("~/uploads/" + fileName)); } protected void abc_Click(object sender, EventArgs e) { // need file upload on this click and also need to store some outer data in this click event } 

如何在我自己的按钮点击事件上实现ajax多文件上传,因为我需要上传多个文件以及此按钮上的其他一些数据点击

我已经放置了控制html和.cs代码,它运行良好并且使用事件OnUploadComplete上传多个图像但我​​需要在abc_Click事件上传图像,以便单击我可以上传图像以及我也可以保存数据

您应该考虑将项目迁移到ASP.NET MVC 。 在向您的代码隐藏发送不同的和多种数据类型时,这会给您带来很多好处。 然后,您可以制作一个ViewModel ,它可以保存图片列表以及您需要的其他信息,并在一次通话中将所有信息发送到您的后端。

当然,我不知道你是否已经熟悉MVC,但如果没有,请参阅此链接以获取更多知识: https : //www.asp.net/mvc

我希望能帮助你一点,否则让我知道。

有很多方法可以在Asp.Net中上传多个文件。 您应该使用以下方法HTML:

    

C#活动

 using System; using System.IO; protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e) { string fileName = Path.GetFileName(e.FileName); AjaxFileUpload1.SaveAs(Server.MapPath("~/uploads/" + fileName)); } 

或者您可以使用JQuery上传多个文件,如下所示。 从JQuery 多文件上传插件下载JQuery.js和jQuery.MultiFile.js

HTML:

    

C#活动

 protected void btnUpload_Click(object sender, EventArgs e) { HttpFileCollection multipleFiles = Request.Files; for (int fileCount = 0; fileCount < multipleFiles.Count; fileCount++) { HttpPostedFile uploadedFile = multipleFiles[fileCount]; string fileName = Path.GetFileName(uploadedFile.FileName); if (uploadedFile.ContentLength > 0 ) { uploadedFile.SaveAs(Server.MapPath("~/Files/") + fileName); lblMessage.Text += fileName + "Saved 
"; } } }

所以我认为一切都运行良好,除了你希望在其他一些按钮(可能是你的HTML标记的其他部分)时触发上传你只需在同一页面上添加一个按钮: