は、私は、サーバー上のドキュメントをビュン終わったと、彼らはzip形式で圧縮された後、私はクライアント側でそれらをダウンロードしてください:
self.download = function() {
var mappedArray = $.map(self.checkedDocs(), function (item) { return item.pdfloc() });
self.service.zipDocs(ko.toJSON(mappedArray), function (data) {
if (data == "Error") {
$("#modalResult").text("Error has occured, please try later.");
$("#modalConfirmation").dialog();
}
else if (data == "Success") {
$("#modalResult").text("Your documents are being download.");
$("#modalConfirmation").dialog();
}
});
}
そして、APIの呼び出し:
self.zipDocs = function (docs, callback) {
$.ajax({
url: "http://api.xxx.com/functions/zip",
type: "POST",
contentType: "application/json",
dataType: "binary",
data: docs,
processData: false,
success: function (blob) {
saveAs(blob, "ZippedDocuments.zip");
callback("Success");
},
error: function (data) {
callback("Error");
}
});
}
そして、APIのC#のcofr:
[HttpPost]
[Route("zip")]
public HttpResponseMessage ZipDocs([FromBody] string[] docs)
{
using (ZipFile zip = new ZipFile())
{
zip.AddFiles(docs, false, "");
return ZipContentResult(zip);
}
}
同じ問題に直面している人に役立つことを願っています。
https://stuk.github.io/jszip/ – levi
ありがとうございます、私はそれを試して、あなたにそれがどうなるかを教えてくれます。ありがとう! – user3378165
@levi私はそれらの例(ファイルを作成する)で動作するようにしましたが、私の文書リストでどのようにIDを指定するか分からないので、私に例を書いてもらえますか? – user3378165