PdfViewer文件下载

by CNLYON at 2023-08-22

https://www.wzisps.org.cn/ 温州标准化,有些内容只能浏览无法下载

<script>
        var DEFAULT_URL = "";
        var PDFData = ""; 
        $.ajax({
            type: "post",
            async: false,
            mimeType: 'text/plain; charset=x-user-defined',
            url: '/Bz/EncryPdf?file=xxxxx.pdf', 
            success: function (data) {
                PDFData = data;
            }
        });
        var rawLength = PDFData.length; 
        var array = new Uint8Array(new ArrayBuffer(rawLength));
        for (i = 0; i < rawLength; i++) {
            array[i] = PDFData.charCodeAt(i) & 0xff;
        }
        DEFAULT_URL = array;
 </script>

看了一下代码只是简单做了个转码。把内容放在了DEFAULT_URL 中,我们把DEFAULT_URL 内容下载下来即可。 利用以下代码进行下载。

    let blob = new Blob([DEFAULT_URL], {
        type: "application/pdf"
    }); //创建blob对象,文件类型设置为pdf的类型
    let blobURL = window.URL.createObjectURL(blob); //然后创建一个可访问的URL
    let tempLink = document.createElement('a'); //创建a标签去下载
    tempLink.style.display = 'none';
    tempLink.href = blobURL;
    tempLink.setAttribute('download', "demo.pdf");
    if (typeof tempLink.download === 'undefined') {
        tempLink.setAttribute('target', '_blank');
    }
    document.body.appendChild(tempLink);
    tempLink.click();
    document.body.removeChild(tempLink);
    window.URL.revokeObjectURL(blobURL);