实现文件预览的多种方式(office, image, pdf)

实现文件预览的多种方式(office, image, pdf)

  1. 使用 xdoc 文档预览云服务, 直达链接

使用方式 http://view.xdocin.com/xdoc?_xdoc=文件全路径

  1. 使用微软开放的 office 预览 api, 直达链接

使用方式 https://view.officeapps.live.com/op/view.aspx?src=文件全路径

不过使用这种方法只能预览 office 系列文件, 可以配合下面的方法进行使用

/**
 * 预览文件
 * @param url
 */
function previewOffice(url) {
  if (strIsNull(url)) {
    console.log("预览文件:::url为空");
    return;
  }

  // 默认认为文件类型是 office , 调用 officeapps 提供的 api
  let showUrl = "https://view.officeapps.live.com/op/view.aspx?src=" + url;

  if (fileIsImg(url) || fileIsPdf(url)) {
    // 如果是图片或者pdf直接预览
    showUrl = url;
  }
  // 模拟 a 标签点击
  let link = document.createElement('a');

  link.href = showUrl;
  link.style.display = "none";
  link.target = "_blank";

  link.click();
}

/**
 * 判断文件是否为图片
 * @param path
 * @returns {boolean} true 该文件路径下的文件为图片
 */
export function fileIsImg(path) {
  if (!path) {
    return false;
  }
  let suffix = path.substr(path.lastIndexOf(".") + 1);

  return IMG_SUFFIX.indexOf(suffix.toLowerCase()) !== -1;
}

/**
 * 判断文件是否为 pdf
 * @param path
 * @returns {boolean} true 是 pdf 文件
 */
export function fileIsPdf(path) {
  if (!path) {
    return false;
  }
  let suffix = path.substr(path.lastIndexOf(".") + 1);

  return PDF === suffix.toLowerCase();
}

/**
 * 判断字符串是否为空
 * @param str
 * @returns {boolean} true 为空或空串
 */
export function strIsNull(str) {
  return !str || str.length === 0;
}

/**
 * 图片文件后缀名集合
 * @type {string[]}
 */
const IMG_SUFFIX = ["png", "jpg", "jpeg", "gif"];
/**
 * pdf 格式文件
 * @type {string}
 */
const PDF = "pdf";
  1. 使用 openoffice 将 doc,ppt,xls 转换成 pdf 实现文件浏览器预览,需要后台代码进行文件转换
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值