0

嗨,我创建了一个 zipfile,我想在创建后上传它。

我有一种上传文件的方法,但它只接受文件作为HttpPostedFileBase

保存我的 zip 文件后,我将如何将其更改为 HttpPostedFileBase 以便我可以将其传递给我的上传方法。

using (ZipFile zip = new ZipFile())
   {
      // add this map to zip
      zip.AddFile(tempFolderPath + PropInfo[7].TagValue, "");
      zip.AddFile(tempFolderPath + "data.xml", "");
      zip.AddFile(tempFolderPath + "dvform.dvform", "");
      zip.AddFile(tempFolderPath + "CS1.pdf", "");
      zip.AddFile(tempFolderPath + "CS2.pdf", "");
      zip.AddFile(tempFolderPath + "CS3.pdf", "");
      zip.AddFile(tempFolderPath + "CS4.pdf", "");
      zip.AddFile(tempFolderPath + "CS5.pdf", "");
      zip.Save(tempFolderPath + "Tester.xap"); //Xap Save Name
    }
4

2 回答 2

1

如果您真的想制作一个 zip 文件,HttpPostedFileBase那么您最好的选择可能是创建一个继承自HttpPostedFileBase并根据需要覆盖方法的类。

没有太多需要覆盖的东西,它们都应该很容易从文件对象中获取(它们是文件名、内容长度和内容类型以及文件流本身)。

到目前为止,最好的办法是将您的上传方法重构为不需要HttpPostedFileBase对象。使其采用更常用的文件对象或流或类似文件(取决于上传需要什么),然后创建一个覆盖HttpPostedFileBase并提取它需要传递给您的主要上传方法的位。

不过,重构上传方法可能超出了这个问题的范围。

于 2012-10-05T11:35:00.627 回答
0

只是一个想法,希望你能以此为基础

HttpPostedFile f = new HttpPostedFile();
f.InputStream = new System.IO.FileStream(); //replace this with Stream from your zip
HttpPostedFileBase zipFile = new HttpPostedFileWrapper(f);
于 2012-10-05T11:38:01.640 回答