当前位置:   article > 正文

uniapp-h5文件复制链接,预览,下载等功能_uniapp 复制链接

uniapp 复制链接

一、复制链接

主要功能代码:document.execCommand('Copy');

  1. copy() {
  2. console.log('复制');
  3. var inputTest = document.createElement('input');
  4. inputTest.value = this.copyUrl;
  5. // inputTest.value='11111111111';
  6. document.body.appendChild(inputTest);
  7. inputTest.select();
  8. document.execCommand('Copy');
  9. uni.showToast({
  10. title: '复制成功',
  11. icon: 'none'
  12. });
  13. },

二、文件预览

需求:需要在弹框中显示,所以要能嵌套到ui组件,并且就在本页面打开,不能跳转到新页面

所以用的iframe 标签

  1. <u-popup :show="show_three" :round="10" :zIndex="zIndex_three" style='padding: 40rpx;' @close="close_three" >
  2. <view class="popup_three" >
  3. <view class="title">文件预览</view>
  4. <iframe :src="copyUrl" width='100%' height='400rpx'></iframe></view>
  5. </u-popup>

最开始用的web-view

但是无法嵌套到其他ui组件中,所以不符合要求
  1. <template v-if='show_three'>
  2. <view class="" style="padding: 20rpx;">
  3. <web-view :src="copyUrl" ></web-view>
  4. </view>
  5. </template>

pc端中基本没什么问题,但是一到移动端预览就变成了下载

网上找了两种方法

1.上传文件设置请求头, PDF 加载链接添加响应标头:content-type=“application/pdf”

参考:

前端处理二进制文件流,预览图片、PDF_application/pdf_1234Wu的博客-CSDN博客

前端实现window.open实现pdf预览以及请求时携带请求头通过后端权限校验_window.open添加请求头_zxx1126的博客-CSDN博客

关于http标头:如何强制文件在浏览器中打开而不是下载(PDF)? | 码农家园 (codenong.com) 

文件在线预览HTTP响应头设置_Wu_Menghao的博客-CSDN博客 

2.使用的pdf.js

下载pdfjs包,里面包含了两个文件夹:web和build

路径图片:

 使用:

  1. <iframe :src="fileUrl" style='height: 500px;width:100%;'></iframe>
  2. fileUrl: '/static/pdf/web/viewer.html?file=' ,
  3. preview() {
  4. console.log('预览',this.copyUrl);
  5. this.fileUrl += encodeURIComponent(this.copyUrl)
  6. this.show_three = true;
  7. },
  8. <!-- <iframe src="https://www.lilnong.top/static/project/pdfjs-es5-2.5.207/web/viewer-1.html?file=https://www.lilnong.top/static/pdf/B-4-RxJS%E5%9C%A8React%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8-%E9%BE%99%E9%80%B8%E6%A5%A0_.pdf" style='height: 500px;width:100%;'></iframe> -->

报错:file origin does not match viewer's

解决:注释掉web/viewer.js中下面的代码,不去判断跨域

  1. if (origin !== viewerOrigin && protocol !== 'blob:') {
  2. throw new Error('file origin does not match viewer\'s');
  3. }

参考:

开始 - PDF.js 中文文档 (gitcode.host)

使用 pdf.js 在网页中加载 pdf 文件 - yinghualeihenmei - 博客园 (cnblogs.com)

在HTML或React中实现PDF文件预览,想要不允许下载等如何设置呢?_网页直接打开pdf 禁止下载_WilliamHong2021的博客-CSDN博客

PDF.js在前后端<iframe>标签中在线预览PDF文件的使用心得_lwl827的博客-CSDN博客

uniapp 在线预览pdf文件流(h5)_h5文件流怎么展示_uidshen的博客-CSDN博客 

 下载:利用pdf.js在线展示PDF文档 - 公子小六 - 博客园 (cnblogs.com)

三、文件下载

  1. downfile() {
  2. console.log('下载');
  3. let a = document.createElement('a');
  4. a.href = this.copyUrl;
  5. a.download = 'filename';
  6. a.click();}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/325485
推荐阅读
相关标签
  

闽ICP备14008679号