0

こんにちは。zipファイルを作成しました。作成後にアップロードしたいと思います。

ファイルをアップロードする方法がありますが、ファイルを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 に答える