[英]Want ajax multiple file upload on my button click event
这是我的.aspx页面代码
<form id="form1" runat="server">
<asp:ToolkitScriptManager runat="server">
</asp:ToolkitScriptManager>
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
Width="400px" OnUploadComplete="OnUploadComplete" Mode="Auto" />
<asp:Button ID="abc" runat="server" Text="Button" OnClientClick="$('.ajax__fileupload_uploadbutton').trigger('click');" OnClick="abc_Click" />
</form>
.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:
<asp:ScriptManager runat="server"></asp:ScriptManager>
<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server" Width="500px" AllowedFileTypes="jpg,jpeg,png" MaximumNumberOfFiles="4" OnUploadComplete="AjaxFileUpload1_UploadComplete" />
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:
<asp:FileUpload ID="FileUploadJquery" runat="server" class="multi"/>
<asp:Button ID="btnJqueryMultipleFiles" runat="server" Text="Upload Files Using Jquery" onclick="btnJqueryMultipleFiles_Click"/>
</div>
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 <br>";
}
}
}
所以我认为一切都运行良好,除了你希望在其他按钮(可能是你的HTML标记的其他部分)时触发上传你只需在同一页面上添加一个按钮:
<input type="button" value="Custom Upload Button"
onClick="$('.ajax__fileupload_uploadbutton').trigger('click');
return false;" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.