我要做的是创建一个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文件?
答案 0 :(得分:-1)
请添加以下声明
Thread.sleep代码(5000); //这将使线程休眠5秒钟。
之后
zip.CreateEntryFromFile(filePath,Name);
如果您仍然遇到问题,请增加睡眠时间。