繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM