使用 javascript 压缩和下载多个 PDF 文档
Zip and Download multiples PDF documents with javascript
在我的 Javascript 代码中,我有一个映射的文档位置数组(使用 Knockout)。
var mappedArray = $.map(self.checkedDocs(), function (item) { return item.pdfloc() });
是否可以使用 Javascript 压缩和下载这些文档?
我最终在服务器上压缩了文档,压缩后我在客户端下载它们:
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);
}
}
希望对遇到同样问题的小伙伴有所帮助
在我的 Javascript 代码中,我有一个映射的文档位置数组(使用 Knockout)。
var mappedArray = $.map(self.checkedDocs(), function (item) { return item.pdfloc() });
是否可以使用 Javascript 压缩和下载这些文档?
我最终在服务器上压缩了文档,压缩后我在客户端下载它们:
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);
}
}
希望对遇到同样问题的小伙伴有所帮助