我正在创建一个网站(asp.net),允许用户将一些文件上传到服务器(只有注册用户可以上传)。特定用户上传的所有文件都存储在服务器上的一个文件夹中。现在,该网站还将具有搜索功能。浏览网站的任何人都可以看到用户“x”上传了所有文件的内容,并选择下载它们。让我们说用户“X”上传了100个文件。
在服务器端,我有代码将获取所有100个文件并将文件逐个循环流式传输给用户。我有:
Response.AddHeader("content-disposition", "attachment; filename=" + file.Name)
这将提示用户该位置将文件保存在他们的磁盘上。对于100个文件,将提示用户100次。
我想只提示用户一次保存/打开/关闭对话框,缓存(或以某种方式获取该位置)用户存储文件的位置,以便通过提示将其余文件保存到该位置用户一次又一次。
是否可以做这样的事情?
答案 0 :(得分:1)
你不能制作一个zip文件吗?
例如,使用DotNetZip?
答案 1 :(得分:1)
有? 您可以使用csharpziplib来压缩文件。 然后提供单个链接给用户。
如果文件的大小或数量占用了大量时间,您应该考虑其他选择,例如:
答案 2 :(得分:0)
包含下载包含下载网址的文本文件,可以使用wget
(Windows version)之类的内容吗? (或者可以下载文件列表的其他下载程序。)