在我的应用程序中,用户可以上传其他用户以后可以查看的PDF。对于我的用例,我需要确保PDF没有被锁定或加密,并且可以被任何其他用户查看。
要做到这一点,我要求用户上传未锁定的PDF,并且在我尝试上传到S3之前,如果PDF被锁定,则会抛出错误。
我还没有就浏览器中可能最好的方法找到共识?如果我不能,我是否尝试读取缓冲区并抛出错误?或者是否有另一种高性能的检测方法?
答案 0 :(得分:1)
用户体验,带宽和性能最好能够检测客户端的状态。您可以在页面上有一个文件输入元素,并捕获onChange事件。
<input type="file" id="pdfFile" size="50" onChange='processFile' />
在onChange-handling函数内部,您可以获取文件字节并加载到缓冲区中。有关代码和更多详细信息,请参阅reading file contents on the client side in javascript in various browsers。
您需要进行一些PDF解析才能学习锁定/加密状态,但我想有JS库可以做到这一点。即使您要解析非常大的PDF,也总是比将PDF上传到服务器更快,因为上传时间将取决于文件大小。
我可以看到上传文件而不是客户端解析的案例: