将可下载的http请求发送到zip

时间:2018-03-02 14:23:21

标签: c#

我希望有人可以帮助我,我是C的新手,我正在制作基于输入从服务器发送文件的Web API。当我输入ID时,我得到与该ID相关的所有文件(Indesign文件,jpegs,pngs,插图文件...) 我使用Postman获取resulat,它看起来像附件enter image description here

我必须复制每个链接并将其粘贴到地址栏以下载文件。

我想要的是只有一个包含所有文件的文件(Zip)。 这甚至可行吗?感谢

1 个答案:

答案 0 :(得分:0)

我找到了解决方案并且它返回了一个包含正确文件的zip文件,现在问题是这些文件大小为0Kb,请帮忙吗? 这是我的代码  ``             MemoryStream archiveStream = new MemoryStream();

        using (ZipArchive archiveFile = new ZipArchive(archiveStream, ZipArchiveMode.Create, true))
        {
            foreach (var item in assetsNotDuplicated)
            {
                // create file streams
                // add the stream to zip file

                var entry = archiveFile.CreateEntry(item.Name);

                using (StreamWriter sw = new StreamWriter(entry.Open()))
                {
                    sw.Write(item.Url);
                }
            }
        }


        HttpResponseMessage responseMsg = new HttpResponseMessage(HttpStatusCode.OK);
        responseMsg.Content = new ByteArrayContent(archiveStream.ToArray());


        //archiveStream.Dispose();
        responseMsg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "allfiles.zip" };
            responseMsg.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip");

            return responseMsg;
    }