通过 ASP 下载多个文件

本文关键字:文件 下载 ASP 通过 | 更新日期: 2023-09-27 18:36:49

我有一个设置,我需要从数据库中下载多个文件(至少 2 个),其中每个文件都通过 ASP 存储为二进制数组。我从Microsoft中找到了一个几乎可以解决问题的示例,但我似乎无法下载多个文件。它总是下载 1 个文件(即使有 2 个),然后称之为"FullActivity"(这是我制作的类的名称)。看起来像这样:

protected void download_btn_Click(object sender, EventArgs e)
{
    Int32 id = Int32.Parse(Request.QueryString.Get(0));
    List<ActivityFile> files = Facade.GetActivityFiles(id);
    StringBuilder msg = new StringBuilder();
    if (files.Count == 0)
    {
        msg.Append("No files were found for this activity.");
        String jsExec = Util.ModalAlert(msg.ToString(), "#info_modal", ".modal-body");
        ScriptManager.RegisterStartupScript(Page, GetType(), "ModalAlertShow", jsExec, false);
    }
    else
    {
        foreach (ActivityFile file in files)
        {
            //TODO: Perhaps find a dynamic way of doing this
            String folder = "''''jetfile01''Users''" + Util.GetUserAccount(this);
            switch (file.FileType)
            {
                case "pdf":
                    Response.ContentType = "Application/pdf";
                    break;
                case "docx":
                    Response.ContentType = "Application/msword";
                    break;
                case "doc":
                    Response.ContentType = "Application/msword";
                    break;
                case "xlsx":
                    Response.ContentType = "Application/x-msexcel";
                    break;
                case "xls":
                    Response.ContentType = "Application/x-msexcel";
                    break;
                default:
                    Response.ContentType = "text/plain";
                    break;
            }
            String filepath = MapPath(file.Name + "." + file.FileType);
            Response.BinaryWrite(file.FileBuffer);
            Response.Flush();
        }
        Response.End();
    }
}

不确定我错过了什么,我也不知道我实际上如何命名该文件。我的 ActivityFile 类确实包含文件的全名和扩展名,但我不确定在这种情况下如何使用此信息。

有什么帮助吗?

通过 ASP 下载多个文件

每个文件下载都是一个响应。

每个请求只能有一个响应(当然除了推送通知!

相反,呈现一个包含链接的页面,或者单独请求下载每个文件。

或者,下载包含多个文件的 zip 存档。

[编辑]

只是想了一下,我不再相信这是真的!

不过,我可能会这样做。

[/编辑]

内嵌框架解决方案网页

<iframe id='frame1' name='frame1' />
<iframe id='frame2' name='frame2' />

脚本:

document.getElementById('frame1').src = 'downloadfile1.csv';
document.getElementById('frame2').src = 'downloadfile2.csv';