Springboot+Vue實現批量文件上傳(pdf、word、excel)並支持在線預覽功能

2021-03-02 Java引導者

優質文章,及時送達

前端初始頁面


上傳doc,docx,xls,xlsx,ppt,pptx,txt成功頁面

文件在線預覽頁面

JDK:1.8

資料庫:Mysql5.6

前端:Vue

後端:SpringBoot


掃碼關注回復括號內文字【辦公軟體】獲取源碼

如果你在運行這個代碼的過程中有遇到問題,請加小編微信xxf960513,我拉你進對應微信學習群!!幫助你快速掌握這個功能代碼!

pox.xml

<dependency>     <groupId>com.aspose</groupId>     <artifactId>aspose-words</artifactId>     <version>16.8.0</version></dependency><dependency>    <groupId>com.aspose</groupId>    <artifactId>aspose-cells</artifactId>    <version>8.5.2</version></dependency>  <dependency>    <groupId>com.aspose</groupId>    <artifactId>aspose-slides</artifactId>    <version>15.9.0</version></dependency>

UploadParsePdfCtrler.class

package com.yxyz.ctrler;import java.io.FileOutputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Value;import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import com.yxyz.rest.CodeMsg;import com.yxyz.rest.Result;import com.yxyz.util.AsposeUtil;import com.yxyz.util.FileUtil;import com.yxyz.util.StringUtil;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;
@RestController@RequestMapping("/filetopaf")@CrossOrigin@Api(value="文件上傳轉pdf預覽",tags={"文件上傳轉pdf預覽"})public class UploadParsePdfCtrler { @Value("${web.oring-save-path}") private String savePath; @Value("${web.upload-path}") private String pdftemppath; @Value("${server.servlet.context-path}") private String projName; @PostMapping("/uploadtopdf") @ApiOperation(value="批量文件上傳轉pdf預覽") public Object uploadToPdf(HttpServletRequest request,MultipartFile[] files) throws Exception { if(null == files || files.length == 0) { return Result.error(CodeMsg.NOFILEUPLOAD); } projName = StringUtils.isEmpty(projName)?"":projName;     List<Map<String,String>> saveName_orinName_Url = new ArrayList<>(); FileUtil.checkExistDir(savePath);    FileUtil.checkExistDir(pdftemppath); for(MultipartFile file : files) { String orinName = file.getOriginalFilename(); String preName = StringUtil.getUuid(); String stuffName = orinName.substring(orinName.lastIndexOf("."));      String svName = preName + stuffName; byte[] cache = new byte[1024]; int hasRead = 0; InputStream in = file.getInputStream(); FileOutputStream out = new FileOutputStream(savePath+svName); while((hasRead=in.read(cache, 0, cache.length)) != -1) { out.write(cache, 0, hasRead); } out.flush(); if(null != out) { out.close(); } if(null != in) { in.close(); }       String pdfSaveName = pdftemppath+preName+".pdf";      AsposeUtil.trans(savePath+svName, pdfSaveName); String httpUrl = request.getScheme() + "://" + request.getServerName()         + ":" + request.getServerPort() +projName+"/"+ preName+".pdf"; Map<String,String> rs = new HashMap<>(); rs.put("oldname", orinName); rs.put("newname", preName+".pdf");      rs.put("url", httpUrl);      saveName_orinName_Url.add(rs);     } return Result.success(saveName_orinName_Url); }}

main.js

import Vue from 'vue'import 'normalize.css/normalize.css' import ElementUI from 'element-ui'import 'element-ui/lib/theme-chalk/index.css'import '@/styles/index.scss' import App from './App'import store from './store'import router from './router'
import '@/icons' import '@/permission' if (process.env.NODE_ENV === 'production') { const { mockXHR } = require('../mock') mockXHR()}Vue.use(ElementUI)Vue.config.productionTip = falsenew Vue({ el: '#app', router, store, render: h => h(App)})

index.vue

<template>  <div class="dashboard-container">    <el-upload      ref="upload"      multiple      class="upload-demo"      action="http://139.159.147.237:8080/yxyz/filetopaf/uploadtopdf"      :on-preview="handlePreview"      :on-remove="handleRemove"      :file-list="fileList"      :before-upload="beforeUpload"      list-type="picture"    >      <el-button slot="trigger" size="small" type="primary">選取文件</el-button>            <div slot="tip" class="el-upload__tip">可以上傳doc/xlsx/pdf</div>    </el-upload>  </div></template><script>export default {  name: 'Dashboard',  components: { },  data() {    return {      fileList: [],      dialogVisible: false,
      pdfUrl: '' } }, computed: {}, created() { this.fileArr = [] },  methods: { handleRemove(file, fileList) { console.log(file, fileList) }, handlePreview(file) { console.log(file, 'hha') window.open(file.response.data[0].url) }, beforeUpload(file) { console.log(file)    } }}</script><style lang="scss" scoped>.dashboard { &-container { margin: 30px; } &-text { font-size: 30px; line-height: 46px; }}</style>

--完--

如果你覺得這個案例以及我們的分享思路不錯,對你有幫助,請分享給身邊更多需要學習的朋友。別忘了《留言+點在看》給作者一個鼓勵哦!


1、springboot+mybatis+vue前後端分離實現用戶登陸註冊功能

2、SpringBoot+Vue前後分離實現郵件發送功能

3、SpringBoot+Spring Data JPA+Vue前後端分離實現分頁功能

4、SpringBoot+Spring Data JPA+Vue前後端分離實現Excel導出功能

5、Spring Boot + Vue前後端分離實現圖片上傳功能

6、springboot+jpa+tymeleaf實現分頁功能

7、springboot+jpa+thymeleaf實現信息修改功能

8、SpringBoot+vue開發微信小程序留言功能

9、SpringBoot實現生成帶參數的小程序二維碼功能

10、springboot+jpa+thymeleaf實現信息增刪改查功能

11、用java實現Graphics2D繪製驗證碼功能

12、Springboot+layui前後端分離實現word轉pdf功能

13、用java將本地圖片轉base64格式, 再轉圖片!你用過這個功能?

14、springboot+layui+thymelefe實現用戶批量添加功能

15、springboot+Tymeleaf實現用戶密碼MD5加鹽解密登錄

16、springboot+vue實現用戶註冊後必須通過郵箱激活才能登錄激活才能登錄

17、SpringBoot+Vue實現用戶頭像修改功能

18、Springboot+Vue實現富文本發表文章功能

19、springboot+vue實現不同管理權限的用戶登陸展示的菜單欄目不同功能

20、Springboot+vue實現上傳視頻並在線播放功能

21、SpringBoot+Vue前後端分離實現郵件定時發送功能

22、springboot+vue實現多圖片同時上傳功能

23、Springboot+Vue前後端分離實現Excle文件導入並在前端頁面回顯功能

24、Springboot+Vue實現從資料庫中獲取數據生成樹狀圖在前端頁面展示功能

25、Springboot+Vue實現從資料庫中獲取數據生成餅狀圖並在前端頁面展示功能

為了方便大家更好的學習,本公眾號經常分享一些完整的單個功能案例代碼給大家去練習,如果本公眾號沒有你要學習的功能案例,你可以聯繫小編(微信:xxf960513)提供你的小需求給我,我安排我們這邊的開發團隊免費幫你完成你的案例。
注意:只能提單個功能的需求不能要求功能太多,比如要求用什麼技術,有幾個頁面,頁面要求怎麼樣?

相關焦點

  • Springboot+Vue實現上傳文件顯示進度條效果功能
    Excel導出功能5、Spring Boot + Vue前後端分離實現圖片上傳功能6、springboot+jpa+tymeleaf實現分頁功能7、springboot+jpa+thymeleaf實現信息修改功能8、SpringBoot+vue開發微信小程序留言功能9、SpringBoot實現生成帶參數的小程序二維碼功能
  • Springboot+Vue實現滑動驗證成功後登錄功能
    Excel導出功能5、Spring Boot + Vue前後端分離實現圖片上傳功能6、springboot+jpa+tymeleaf實現分頁功能7、springboot+jpa+thymeleaf實現信息修改功能8、SpringBoot+vue開發微信小程序留言功能9、SpringBoot實現生成帶參數的小程序二維碼功能
  • Java 實現word、excel、ppt、txt等辦公文件在線預覽功能!
    如何用 Java 實現word、excel、ppt、txt等辦公文件在線預覽功能?本文告訴你答案!
  • Springboot+layui前後端分離實現word轉pdf功能
    上傳word文檔自動轉成pdf文件並且下載到本地)word文檔上傳過程wopdf\\"; @ApiOperation(value = "word轉pdf", notes = "word轉pdf") @PostMapping("/wordToPdf") public Map wordExcute(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse
  • 教你用 Java 實現word、excel、ppt、txt等辦公文件在線預覽功能!
    如何用 Java 實現word、excel、ppt、txt等辦公文件在線預覽功能?本文告訴你答案!
  • 手把手教你用 Java 實現word、excel、ppt、txt等辦公文件在線預覽功能!
    如何用 Java 實現word、excel、ppt、txt等辦公文件在線預覽功能?本文告訴你答案!
  • 快速實現word、excel、ppt、txt等辦公文件在線預覽功能(Java版)
    點擊關注公眾號,實用技術文章及時了解來源:blog.csdn.net/weixin_40986713/article/details/109527294java實現辦公文件在線預覽功能是一個大家在工作中也許會遇到的需求
  • 手把手實現Word、Excel、PPT在線預覽
    來自:blog.csdn.net/weixin_40986713/article/details/109527294Java實現辦公文件在線預覽功能是一個大家在工作中也許會遇到的需求
  • SpringBoot實現萬能文件在線預覽源碼,真好用!
    kkFileView,一款成熟且開源的文件文檔在線預覽項目解決方案,對標業內付費產品有【永中office】【office365】【idocv】等,免費!接口提供服務,跨語言、跨平臺特性(java,php,python,go,php,....)都支持,應用接入簡單方便抽象預覽服務接口,方便二次開發,非常方便添加其他類型文件預覽支持最最重要 Apache 協議開源,代碼 pull 下來想幹嘛就幹嘛官網及文檔地址:https://kkfileview.keking.cn在線體驗會不定時停用
  • 基於springboot打造文件文檔在線預覽項目【附帶源碼】
    3. word文檔預覽支持doc,docx文檔預覽,word預覽有兩種模式:一種是每頁word轉為圖片預覽,另一種是整個word文檔轉成pdf,再預覽pdf。pdf預覽模式預覽效果如下5. pdf文檔預覽支持pdf文檔預覽,和word文檔一樣,有兩種預覽模式圖片預覽模式預覽效果如下
  • Spring Boot如何實現在線預覽?這個開源項目可以學習一下,支持99%常用文件!
    Spring Boot上傳文件,相信你一定會了。
  • Spring Boot搭建的一個在線文件預覽系統!支持ppt、doc等多種類型文件預覽
    、conf、ini、vue、php、py、bat、gitignore 等文件在線預覽簡單來說 kkFileView 就是常見的文件類型的在線預覽解決方案。filePreviewHandle() 方法是實現文件預覽的核心方法。
  • 計算機畢業設計中java實現在線預覽--poi實現word、excel、ppt轉html
    java實現在線預覽功能是一個大家在工作中也許會遇到的需求,如果公司有錢,直接使用付費的第三方軟體或者雲在線預覽服務就可以了,例如永中office、office web 365(http://www.officeweb365.com/)他們都有雲在線預覽服務,就是要錢0.0如果想要免費的,可以用openoffice,還需要藉助其他的工具(例如swfTools、FlexPaper
  • 兩種簡單辦法快速解決word批量轉pdf
    夥伴們肯定經常會需要把word文檔轉成pdf,之前文章裡面介紹過不少格式轉換的工具網站,其中也包括word轉成pdf格式,傳送門在這裡:在線格式轉換利器
  • kkFileView v2.2.1 發布,文件文檔在線預覽解決方案
    kkfileview 文件在線預覽此項目為文件文檔在線預覽項目解決方案,項目使用流行的 spring boot 搭建,易上手和部署,部署好後可以獨立提供預覽服務,使用 http 接口訪問,不需要和應用集成,具有跨系統跨語言使用的特性。
  • 一個基於Springboot開發的文件在線預覽系統已開源,支持壓縮包、doc、ppt等~
    最近,有位同學問我,他跟朋友接了一個外包項目,其中有一個需求,需要實現文件在線預覽的功能
  • Word、Pdf、Excel、PPT、html等文件互轉工具
    2020年第一波更新,再來個重量級的剛需場景,文件互轉。有Excel催化劑後,不再需要頻繁到處找尋各種網頁在線版的轉換操作,數據安全很重要,不要輕易將自己文件上傳到網上,哪天出事了,沒人可憐!做最有價值的文件轉換而非為轉換而轉換文件轉換的確是一個非常剛需的功能,滋生了大量的網頁在線轉換應用,當然也有不少是收費性質的,至於免費的也是有功能限制的如文件大小限制或轉換頁數限制。因著沒有過硬的數據管理能力,大量的本該在Excel上做結構化存儲的數據,被分散地存儲在pdf、word、甚至ppt上,這些數據的回收再加工,就有了非常剛需的場景。
  • 個人永久性免費-Excel催化劑功能第115波-word、pdf、Excel、ppt、html等文件互轉
    2020年第一波更新,再來個重量級的剛需場景,文件互轉。有Excel催化劑後,不再需要頻繁到處找尋各種網頁在線版的轉換操作,數據安全很重要,不要輕易將自己文件上傳到網上,哪天出事了,沒人可憐!做最有價值的文件轉換而非為轉換而轉換文件轉換的確是一個非常剛需的功能,滋生了大量的網頁在線轉換應用,當然也有不少是收費性質的,至於免費的也是有功能限制的如文件大小限制或轉換頁數限制。因著沒有過硬的數據管理能力,大量的本該在Excel上做結構化存儲的數據,被分散地存儲在pdf、word、甚至ppt上,這些數據的回收再加工,就有了非常剛需的場景。
  • 神器│教你PDF免費轉Word、PPT、Excel
    1.Smallpdf - 功能最全網址:http://smallpdf.com/功能:將 PDF 格式轉為 Word、PPT、Excel、JPG 格式。推薦原因:無須下載軟體,功能最全,界面也非常友好。
  • Java 文件轉換工具類(word,html,excel,pdf,md,jpeg,png互轉)
    需轉換成在線圖片 】 * * * @param htmlBytes: * html字節碼 * @param wordFilePath: * 待生成的word文件路徑 * @return: word文件信息 * @author :