gpt4 book ai didi

javascript - 从 url 下载 Pdf,将其保存在文件中,zip 然后下载 zip

转载 作者:太空狗 更新时间:2023-10-29 18:29:23 30 4
gpt4 key购买 nike

一直在使用 jszip 创建和下载 zip 文件。我可以单独下载pdf文件。但我想将这些 pdf 下载到 zip 文件夹中,然后下载 zip 文件。

下载pdf的代码片段:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
window.location.href = "pdf_url"
}
};
xhttp.open("GET", "pdf_url");
xhttp.send();

向其添加 zip api:

    var zip = new JSZip();
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
window.location.href = "pdf_url"
zip.file("file_name", pdf_url_content);
}
};
xhttp.open("GET", "pdf_url");
xhttp.send();

创建压缩包:

  zip.generateAsync({type:"blob"})
.then(function callback(blob) {
saveAs(blob, "example.zip");
}

pdf_url_content 应该有 url 的内容。如何阅读该内容?我尝试使用 jszip-utils。无法继续。任何帮助将不胜感激。

提前致谢。

最佳答案

首先,压缩 pdf 是没有用的,因为用户将使用 xmlhttprequest 解压缩然后再压缩,因此他将不得不免费下载文件两次。

我还是回答了你的信息

您应该将正确的内容类型设置为您的 xmlhttprequest,并将 responseType 设置为 blob。然后,您可以使用 onreadstatechange 回调

中的属性 response 访问 pdf 的内容
var zip = new JSZip();
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "pdf_url");
xhttp.responseType = "blob";
xhttp.setRequestHeader("Content-type", "application/pdf");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
zip.file("file_name", xhttp.response);
zip.generateAsync({type:"blob"})
.then(function(blob) {
saveAs(blob, "example.zip");
});
}
};

xhttp.send();

请注意,下载部分(saveAs 函数)需要 FileSaver.js

关于javascript - 从 url 下载 Pdf,将其保存在文件中,zip 然后下载 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50106535/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com