相关疑难解决方法(0)

提供 HTTP 下载中的文件大小估计

一些背景知识,我实现了一个流式 ZipArchive 流,以允许用户同时下载大量文件。 使用 Http OutputStream 写入 ZipArchive

显然,我在下载开始时不知道 zip 文件的大小,因此我无法设置内容长度。等待 zip 文件生成不是一种选择,因为 ZipArchive 生成​​可能需要长达几分钟的时间(文件数量相当大)。

但是,我仍然想通知用户某种粗略的进度(例如,他们收到的文件数量,或内容长度的粗略估计)。是否有任何现有/即将推出的协议:

  1. 允许指定估计的Content-Length类型标头(浏览器仅用作参考而不是确切的长度)。
  2. 使用chunked传输协议,指定块的数量。

asp.net http download

5
推荐指数
0
解决办法
152
查看次数

MVC3将多个pdfs作为zip文件返回

我有一个视图,它返回一个包含多个页面的pdf(使用iTextSharp),但现在我必须更改它,以便每个页面都是一个单独的pdf(带有它自己的唯一标题)并返回一个zip文件.

我的原始代码如下所示:

public FileStreamResult DownloadPDF()
{
    MemoryStream workStream = new MemoryStream();
    Document document = new Document();
    PdfWriter.GetInstance(document, workStream).CloseStream = false;
    document.Open();

    // Populate pdf items

    document.Close();

    byte[] byteInfo = workStream.ToArray();
    workStream.Write(byteInfo, 0, byteInfo.Length);
    workStream.Position = 0;

    FileStreamResult fileResult = new FileStreamResult(workStream, "application/pdf");
    fileResult.FileDownloadName = "fileName";

    return fileResult;
}
Run Code Online (Sandbox Code Playgroud)

使用gzip压缩文件看起来很简单,但我不知道如何gzip多个文件并将其作为一个zip文件返回.或者我应该使用gzip以外的东西,比如dotnetzip或sharpzip?

提前致谢!

c# zip file itextsharp asp.net-mvc-3

3
推荐指数
1
解决办法
1万
查看次数

从 C# Web api 方法下载 ZipArchive 在 chrome 中返回“net::ERR_CONNECTION_RESET”

我想调用一个 Web api 方法并让它允许用户下载我在内存中创建的 zip 文件。我也想在内存中创建条目。

我无法让服务器正确输出下载。

这是我的网络 API 方法:

[HttpGet]
[Route("api/downloadstaffdata")]
public HttpResponseMessage DownloadStaffData()
{
    var response = new HttpResponseMessage(HttpStatusCode.OK);
    using (var stream = new MemoryStream())
    {
        using (var archive = new ZipArchive(stream, ZipArchiveMode.Create, true))
        {
            //future for loop to create entries in memory from staff list
            var entry = archive.CreateEntry("bob.txt");
            using (var writer = new StreamWriter(entry.Open()))
            {
                writer.WriteLine("Info for: Bob");
            }
            //future add staff images as well
        }
        stream.Seek(0, SeekOrigin.Begin);
        response.Content = new StreamContent(stream);
    }
    response.Content.Headers.ContentDisposition = new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api

2
推荐指数
1
解决办法
2766
查看次数

标签 统计

c# ×2

asp.net ×1

asp.net-mvc-3 ×1

asp.net-web-api ×1

download ×1

file ×1

http ×1

itextsharp ×1

zip ×1