基於springboot小程式上傳視訊
阿新 • • 發佈:2018-12-20
第一步:前端內容
<!-- 上傳視訊 -->
<cover-image src='../resource/images/camera.png' style='width:50rpx;height:50rpx;' bindtap='upload'></cover-image>
第二步:後端內容
@PostMapping(value="/upload",headers="content-type=multipart/form-data") public LpyJSONResult upload(String userId, String bgmId,String videoSeconds, int videoWidth,int videoHeight, String desc, @ApiParam(value="短視訊",required=true) MultipartFile file) throws Exception { if(StringUtils.isBlank(userId)) { return LpyJSONResult.errorMsg("使用者id不能為空"); } //定義我們的名稱空間,所有的檔案都可以上傳在這之下 String fileSpace="D:/java_all/workspace-wxxcs/video-space"; //儲存到資料庫中的相對路徑(在名稱空間每個不同使用者存的檔案) String uploadPathDB="/"+userId+"/video"; String coverPathDB="/"+userId+"/video"; FileOutputStream fileOutputStream=null; InputStream inputStream=null; //檔案上傳的最終儲存路徑 String finalVideoPath=""; try { if(file!=null) { //獲取檔名 String name=file.getOriginalFilename(); //分隔路徑 String[] one=name.split("\\/"); String fileName=one[one.length-1]; //獲取字首 String fileNamePrefix=fileName.split("\\.")[0]; if(StringUtils.isNotBlank(fileName)) { //檔案上傳的最終儲存路徑 finalVideoPath=fileSpace+uploadPathDB+"/"+fileNamePrefix+".mp4"; //設定資料庫儲存的路徑 uploadPathDB += ("/"+fileNamePrefix+".mp4"); coverPathDB=coverPathDB+"/"+fileNamePrefix+".jpg"; File outFile = new File(finalVideoPath); if(outFile.getParentFile()!=null ||!outFile.getParentFile().isDirectory()) { //建立父資料夾 outFile.getParentFile().mkdirs(); } //檔案輸出 fileOutputStream = new FileOutputStream(outFile); inputStream = file.getInputStream(); IOUtils.copy(inputStream, fileOutputStream); } }else { return LpyJSONResult.errorMsg("上傳出錯"); } } catch (Exception e) { e.printStackTrace(); return LpyJSONResult.errorMsg("上傳出錯"); }finally { if(fileOutputStream!=null) { fileOutputStream.flush(); fileOutputStream.close(); } }