gpt4 book ai didi

c# - 使用 SharpZipLib 压缩文件时出现 "Invalid folder"错误

转载 作者:行者123 更新时间:2023-11-30 22:19:47 27 4
gpt4 key购买 nike

我有这个功能,我用它来压缩用户 session 中的文件列表,然后将其流式传输到用户的浏览器以供下载:

public static void DownloadAllPhotos()
{
HttpContext.Current.Response.AddHeader(
"Content-Disposition", "attachment; filename=Photos.zip");
HttpContext.Current.Response.ContentType = "application/zip";

List<string> photos= new List<string>();

if (HttpContext.Current.Session != null &&
HttpContext.Current.Session["userPhotos"] != null)
{
photos = (List<string>)HttpContext.Current.Session["userPhotos"];
}

using (var zipStream = new
ZipOutputStream(HttpContext.Current.Response.OutputStream))
{
foreach (string photoUrl in photos)
{
byte[] fileBytes = File.ReadAllBytes(photoUrl);

var fileEntry = new ZipEntry(
Path.GetFileName(photoUrl))
{
Size = fileBytes.Length
};

zipStream.PutNextEntry(fileEntry);
zipStream.Write(fileBytes, 0, fileBytes.Length);
}

zipStream.Flush();
zipStream.Close();

// reset session
HttpContext.Current.Session["userPhotos"] = new List<string>();
}
}

当用户在他们的 session 中有照片 url,并且他们点击一个按钮来调用这个函数时,文件被压缩并在用户的浏览器中开始下载。

但是当我尝试打开压缩文件时,我得到这个错误:

Windows cannot open the folder.

The compressed folder "{Path to my file}" is invalid.

我是否做错了什么导致了这个错误?

最佳答案

检查 Response.FlushZipEntry.CleanNamethis example 中的位置看看写类似的东西是否能解决问题。

关于c# - 使用 SharpZipLib 压缩文件时出现 "Invalid folder"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376519/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com