java实现文件在线预览

该博客详细介绍了如何实现一个在线预览文件的方法,支持多种文件格式如PDF、图片等。通过判断文件后缀,利用Office Web Apps或直接链接进行预览。如果文件格式不支持,则提示无法预览。此外,代码还包含了错误处理机制,确保了操作的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
     * 在线预览文件
     * @param 姜
     * @return文档地址 https://blog.csdn.net/csdn_cjgu/article/details/69389474
     * 此方法不支持ip路径必须为域名
     */
    @RequestMapping(value = "/showview")
    @ResponseBody
    public Map<String,Object> showview(String fileurl) {
        // 返回值
        Map<String,Object> map = new HashMap<String,Object>();
        try {
            String files = "png,jpg,jpeg,gif,pdf,doc,docx,docm,dotm,dotx,xlsx,xlsb,xls,xlsm,pptx,ppsx,ppt,pps,pptm,potm,ppam,potx,ppsm";

            String url = baseUrl+fileurl;//获取文件地址
            if (!"".equals(url) && url != null) {
                //获取文件后缀
                String postfix = url.substring(url.lastIndexOf(".") + 1);
                //判断是否支持预览
                if(files.contains(postfix)) {
                    //获取配置文件中图片路径
                    //拼接地址组成http://img.mostsd.com/uploadfiles/bizDownload/2019/01/15471089090894167.doc
                    String openofficeurl = "http://view.officeapps.live.com/op/view.aspx?src=";
                    String showviewUrl = "";
                    if("pdf".equals(postfix) || "png".equals(postfix) || "jpg".equals(postfix) || "jpeg".equals(postfix) || "gif".equals(postfix)) {
                        showviewUrl = url;
                    }else {
                        showviewUrl = openofficeurl+ URLEncoder.encode(url, "utf-8");
                    }
                    map.put("result", "000");
                    map.put("showviewUrl", showviewUrl);
                }else {
                    map.put("result", "001");
                    map.put("message", "该附件格式不支持在线预览!");
                }

            } else {
                map.put("result", "001");
                map.put("message", "当前数据没有附件");
            }

        } catch (Exception e) { // result的值:000操作成功,001操作失败,002操作失败、程序出现异常
            map.put("result", "002");
            map.put("message", "程序异常!");
            e.printStackTrace();
        }
        return map;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一亩尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值