html在线预览word,pdf,excel,txt,图片等文件。

  1. 最近做一个需要就是在线预览各种文件,找到的都是收费要么就是连接外网查看的,最后就自己在码云闲逛时发现了一个开源的项目。
  2. 具体流程就是下载码云的这个项目:https://gitee.com/kekingcn/file-online-preview
    然后打成jar包启动或者在你本地导入idea启动先做测试(代码下载之后下载好依赖就可以启动,端口是8012重复了就换一下)。
    在这里插入图片描述
  3. 如果你们没有测试项目可以去码云下载我的测试项目:https://gitee.com/Min-Duck/preview下载后直接启动(项目端口是8081)访问地址:http://localhost:8081/preview

在这里插入图片描述
4. 前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图片预览</title>
    <script src="static/js/jquery.min.js"></script>
    <script src="static/js/common.js"></script>
</head>
<body>
<iframe id="preview" style="width: 100vw;height: 100vh;" src=""></iframe>
</body>
</html>
<script type="text/javascript">
    $(document).ready(function () {
        //在线预览项目的地址
        let preview_url = "http://127.0.0.1:8012/onlinePreview?url=";
        //你需要预览的的文件地址
        let src_url = "https://www.baidu.com/img/flexible/logo/pc/result.png";
        $("#preview").attr("src", preview_url + encodeURIComponent(base64encode(src_url)));
    });
</script>
  1. common.js
function base64encode (input) {
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var output = "";
    var i      = 0;
    input      = utf8Encode(input);
    while ( i < input.length ) {
        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);
        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;
        if ( isNaN(chr2) ) {
            enc3 = enc4 = 64;
        } else if ( isNaN(chr3) ) {
            enc4 = 64;
        }
        output = output +
            keyStr.charAt(enc1) + keyStr.charAt(enc2) +
            keyStr.charAt(enc3) + keyStr.charAt(enc4);
    }
    return output;
}

function utf8Encode (text) {
    if (typeof text === 'string') {
        text = text.replace(/\x0d\x0a/g, "\x0a");
        var utftext = "";
        for ( var n = 0; n < text.length; n++ ) {
            var c = text.charCodeAt(n);
            if ( c < 128 ) {
                utftext += String.fromCharCode(c);
            }
            else if ( (c > 127) && (c < 2048) ) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    }
    return text;
}
  1. 测试结果
    在这里插入图片描述
  2. 如需转载请标明出处。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值