目标:vue+element 实现上传图片及pdf 和预览功能

技术:vue、element、vue-pdf

安装及引入:

//安装
npm install  --save vue-pdf//引入
import pdf from 'vue-pdf'
export default {components: { pdf }
}

页面代码:

<template><div><el-upload accept=".pdf, .jpg, .jpeg, .png"action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileArr":show-file-list="false" :auto-upload="false" :before-upload="beforeUpload":on-success="upSuccess" :on-error="upError" :on-change="imgPreview"><el-input v-model="form.position" class="upload-input" /><el-button size="small" type="primary" class="upload-btn"><span class="iconfont icon-shangchuan" />上传文件</el-button></el-upload></div>
</template><script>
import pdf from "vue-pdf";
export default {components: { pdf },data() {return {pdfUrl: "",numPages: [],fileArr: [],upLoadImgUrl: ""}},methods: {beforeUpload(file) {const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);const whiteList = ["pdf", "jpg", "jpeg", "png"];if (whiteList.indexOf(fileSuffix) === -1) {this.$msg("上传文件只能是 pdf、jpg、jpeg、png", "error");return false;}},imgPreview(file) {this.fileArr = [];this.fileArr.push(file);this.form.position = "";console.log(file);this.form.position = file.name;let fileName = file.name;let regex = /(.jpg|.jpeg|.gif|.png|.pdf)$/;if (regex.test(fileName.toLowerCase())) {this.upLoadImgUrl = URL.createObjectURL(file.raw); // 获取URLthis.pdfUrl = this.getPdfUrl(file);console.log(this.upLoadImgUrl);} else {this.$message.error("请选择图片文件");}},// 上传成功upSuccess(res) {this.$message({message: "上传成功",type: "success",});},// 上传失败upError(e) {this.$message({message: "上传失败",type: "error",});},//处理pdfgetPdfUrl(file) {console.log(file);let url = window.URL.createObjectURL(file.raw); //将文件转化成url//加载pdflet loadingTask = pdf.createLoadingTask(url);loadingTask.promise.then((pdf) => {this.numPages = pdf.numPages;console.log(this.numPages);}).catch((err) => {console.error("pdf 加载失败", err);});return url;}}
}
</script>

效果:支持PDF多页展示

Element文件上传 pdf 及预览相关推荐

  1. struts上传word和excel文件到oracle,Struts文件上传,下载,重传,预览

    [Struts2]☆★之文件上传,下载,重传,预览 今日群里一兄弟问我能否给一份struts文件上传下载的例子,因为自己项目比较紧所以想在网上找 些源码给他,但是纵观全网,写的都不是太全,这让新手使用 ...

  2. 2016/4/19 ①单个文件上传 ②上传图片后 预览图片

    1,f1.php <!DOCTYPE html> <htmllang="en"> <head><metacharset="UTF ...

  3. 用openoffice+jodconverter+webuploader+pdf.js实现文件上传、在线预览功能

    一.背景 最近公司一个项目要实现一个文件上传以及多文档在线预览的功能,之前一直做无线工具开发的,没有涉及到这些东西.另外项目组缺java开发人员,而且自己也只是一个半吊子前端加小半吊子java开发人员 ...

  4. php文件上传及头像预览

    php文件上传原理是通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php 程序将文件保存在 ...

  5. Java写file文件上传,在线预览思路

    需要考虑的 1.存储路径区根据时间进行区分,例如根据年月份存放不同的文件目录/20220303 2.上传的文件为避免文件名相同,文件名存数据库,存储存放的文件名为UUID+后缀(如果不需要在线预览,则 ...

  6. php上传头像的代码,php实现文件上传及头像预览功能

    php文件上传原理是通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php程序将文件保存在体 ...

  7. SpringBoot实现PPT格式文件上传并在线预览

    1.需要引入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf< ...

  8. vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件

    vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件 效果如图 直接看代码吧 template部分 <div class="file-upload&q ...

  9. js上传视频,预览视频

    js上传视频,预览视频 <videostyle="width:300px; height:auto;object-fit: fill;"playsinlinecontrols ...

最新文章

  1. 为智能手机VR体验而生,ARM公布最新处理器架构
  2. 为什么matplotlib显示opencv图像不正常
  3. LeetCode-38 报数
  4. 三线调速风扇原理_学修电风扇~风机转速慢、调速失灵故障维修。
  5. So Easy! 让开发人员更轻松的工具和资源
  6. ARMA模型的性质 1
  7. edittext在哪可以获取有效值_java-从EditText获取文本字符串?
  8. 无人驾驶综述:等级划分
  9. 易文档-快速编写专业漂亮的API文档,产品文档,使用手册
  10. 【原创百篇纪念】2048蒙特卡洛法与强化学习测试+B站视频爬取与Cookie攻击测试
  11. postgresql安装报错
  12. Unix环境高级编程—进程控制(三)
  13. 微软:拿番茄花园开刀与反垄断无关
  14. 使用vite插件编写tsx文件
  15. 工厂的生产管理系统,即时掌握车间生产动态
  16. Protobuf自动反射消息类型的网络传输方案
  17. 联想型号启天M420-N000台式机进入bios设置u盘启动
  18. 中秋邀请共赏图数据库-蚂蚁集团图数据TuGraph 正式开源
  19. 亚马逊鲲鹏系统一款自动下单留评软件
  20. PHP导出Excel 数字变成科学计数法解决方法

热门文章

  1. 工业厂房分类有哪些?
  2. 2023 电脑PC 联想电脑风扇控制器软件工具
  3. python 身份证号的有效性、生日(阴历阳历)、星座、生肖、性别、年龄、户籍所在地测试
  4. 特斯拉上海超级工厂初具规模 地基已经打好
  5. 一个定期压缩、删除过期数据的emp脚本
  6. 【动态规划】0-1背包递推式的剖析(通俗易懂)
  7. 虚拟服务器磁盘空间多大,虚拟机硬盘大小是从主机硬盘里划分的吗
  8. SSH 登陆虚拟机VBox
  9. Windows系统的Regsvr32
  10. python实验室预约系统(基于xlsx表)(石山代码)