您好我已经创建了一个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
}
答案 0 :(得分:1)
如果您真的想将zip文件放入HttpPostedFileBase
,那么您最好的选择可能是创建一个继承自HttpPostedFileBase
的类并根据需要覆盖这些方法。
要覆盖的东西并不多,从文件对象中获取它们都非常简单(它们是文件名,内容长度和内容类型以及文件流本身)。
到目前为止,最好的办法是将您的上传方法重构为不需要HttpPostedFileBase
个对象。使它采用更常见的文件对象或流或类似(取决于上载需要的内容),然后创建一个覆盖HttpPostedFileBase
的覆盖,并提取它需要传递给主上传方法的位。
重构上传方法可能超出了这个问题的范围。
答案 1 :(得分:0)
只是一个想法,希望你可以建立在这个
HttpPostedFile f = new HttpPostedFile();
f.InputStream = new System.IO.FileStream(); //replace this with Stream from your zip
HttpPostedFileBase zipFile = new HttpPostedFileWrapper(f);