私は、特定のフォルダパスから新しいzipファイルを作成し、送信者に送り返す方法を理解しようとしています。Web API 2からzipファイルを送信する方法HttpGet
ファイルを要求した送信者がファイルをダウンロードする必要があります。 私は多くの答えを見たことがありますが、誰も正確な答えで私を助けませんでした。
マイコード:
のGUID folderGuid = Guid.NewGuid()。 string folderToZip = ConfigurationManager.AppSettings ["folderToZip"] + folderGuid.ToString();
Directory.CreateDirectory(folderToZip);
string directoryPath = ConfigurationManager.AppSettings ["DirectoryPath"]; 文字列combinedPath = Path.Combine(directoryPath、id);
DirectoryInfo di =新しいDirectoryInfo(combinedPath); (di.Exists) {//は ストリングzipファイル= folderToZip + "\" + folderGuid + ".zipファイル" を作成するZIPファイルのパスおよび名前を提供する場合。お使いのコントローラで
//call the ZipFile.CreateFromDirectory() method
ZipFile.CreateFromDirectory(combinedPath, zipFile, CompressionLevel.Fastest, true);
var result = new HttpResponseMessage(HttpStatusCode.OK);
using (ZipArchive zip = ZipFile.Open(zipFile, ZipArchiveMode.Read))
{
zip.CreateEntryFromFile(folderFiles, "file.zip");
}
var stream = new FileStream(zipFile, FileMode.Open);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "file.zip"
};
log.Debug("END ExportFiles()");
return ResponseMessage(result);
だからあなたの質問は、zipファイルを作成するか、どのようにそれを送信する方法についてです存在? – Yoav
送信方法。 –
zipファイルを送信する場合、GETにはリクエストサイズが限られているため、おそらくPOSTコマンドが必要です。 – GeorgeT