如何解决无法在客户端验证密码
我正在尝试在网页上使用pdf.js
,在将其上传到服务器之前,我需要验证PDF用户输入的密码是否正确。
但是我无法使其工作。
我使用CDN托管的pdf.min.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js" integrity="sha512-Z8CqofpIcnJN80feS2uccz+pXWgZzeKxDsDNMD/dJ6997/LSRY+W4NmEt9acwR+Gt9OHN0kkI1CTianCwoqcjQ==" crossorigin="anonymous"></script>
这是密码检查功能:
function checkPass() {
pdfjsLib.getDocument({
url: 'pdf.pdf',password: '01010101'
}).promise.then(function (pdf) {
input.classList.add("rightpass");
}).catch(function (error) {
input.classList.add("wrongpass");
console.log(error);
});
}
并在控制台日志中记录Deprecated API usage: No "GlobalWorkerOptions.workerSrc" specified.
我尝试通过pdfjsLib.disableWorker = true;
禁用它,但是它不起作用。
我只需要验证密码即可,无需验证。
解决方法
这是一个工作代码示例:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.worker.min.js"></script>
<script>
const pdfName = "empty-protected.pdf";
async function loaded()
{
const loadingTask = pdfjsLib.getDocument({ url: pdfName,password: "qwerty" });
loadingTask.promise.then(() => console.log(1,"OK"),(ex) => console.log(1,ex));
const loadingTask2 = pdfjsLib.getDocument({ url: pdfName,password: "" });
loadingTask2.promise.then(() => console.log(2,(ex) => console.log(2,ex));
}
</script>
</head>
<body onload="javascript:loaded();">
</body>
</html>
这是我用于实验的受密码保护的pdf文件(密码为qwerty
)
https://mega.nz/file/lJg2GKgS#AdVJ0DZ1OfsGrlSqM67dfr_r2n8lBiiOm9q0o4wt7e4
倾斜pdf.worker.min.js
将警告"Warning: Deprecated API usage: No "GlobalWorkerOptions.workerSrc" specified."
更改为"Warning: Setting up fake worker."
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。