【发布时间】:2016-07-05 15:04:51
【问题描述】:
我要做的是创建一个 zip 文件并下载这些文件。 这是我的控制器
public FilePathResult Download(string Name)
{
string f1=null;
try
{
f1 = _dbBackupServiceService.DownloadBackupFile(Name);
}
catch (Exception ex)
{
}
return File(f1, "application/zip", Name + ".zip");
}
服务层也是这样的
public string DownloadBackupFile(string Name)
{
string backupFolder = HttpContext.Current.Server.MapPath("~/DbBackup");
string filePath = backupFolder + "\\" + Name;
string zipFilePath = filePath.Substring(0, (filePath.Length - 3)) + "zip";
var backupFileName = Path.GetFileNameWithoutExtension(filePath);
var zipFileName = Path.GetFileName(zipFilePath);
if (File.Exists(zipFilePath))
{
}
else
{
ZipArchive zip = ZipFile.Open(zipFilePath, ZipArchiveMode.Create);
zip.CreateEntryFromFile(filePath, Name);
}
return zipFilePath;
}
我面临的问题是,当我点击那些未创建 zip 文件的文件的下载操作时。当下载线程运行时,处理器将连续创建 zip 文件,因此浏览器显示错误。而已创建的 zip 文件已成功下载。如何等到 zip 文件创建成功后再进行下载?
【问题讨论】:
-
通常这需要很长时间,让您的用户离开,然后通过电子邮件通知他 zip 已完成,这里是下载链接...
标签: asp.net asp.net-mvc multithreading