通过 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 类确实包含文件的全名和扩展名,但我不确定在这种情况下如何使用此信息。
有什么帮助吗?
每个文件下载都是一个响应。
每个请求只能有一个响应(当然除了推送通知!
相反,呈现一个包含链接的页面,或者单独请求下载每个文件。
或者,下载包含多个文件的 zip 存档。
[编辑]
我只是想了一下,我不再相信这是真的!
不过,我可能会这样做。
[/编辑]
内嵌框架解决方案网页
<iframe id='frame1' name='frame1' />
<iframe id='frame2' name='frame2' />
脚本:
document.getElementById('frame1').src = 'downloadfile1.csv';
document.getElementById('frame2').src = 'downloadfile2.csv';