vue+springboot+element+vue-resource實現檔案上傳
阿新 • • 發佈:2020-09-21
目錄
vue+springboot+element+vue-resource實現檔案上傳
vue頁面設定
<el-upload class="upload-demo" action="" :before-upload="beforeUpload" //上傳前操作 :before-remove="beforeRemove" //移除錢操作 :multiple="false" //禁止多選 :http-request="myUpload" //檔案上傳,重寫檔案上傳方法,action的路徑不會起作用 accept=".jar" //限制檔案選擇型別 :drag="false" :data="param" //引數 :file-list="fileList">//檔案顯示列表 <el-button size="small" type="primary">點選上傳</el-button> <div slot="tip" class="el-upload__tip">只能上傳jar檔案,且不超過500kb</div><!-- :headers="head"--> </el-upload><!--:on-preview="handlePreview"-->
/*檔案上傳前,判斷檔名是否存在,等其他處理*/ beforeUpload(file){ console.log("檔名",file.name,this.fileList) for (let i = 0; i <this.fileList.length ; i++) { if (this.fileList[i].name==file.name) { this.$message.info("檔案已存在"); return false; } } this.file=file; return true; },
/*檔案移除前,提示是否刪除*/ beforeRemove(file,fileList){//delJar this.$confirm('此操作將永久刪除該檔案, 是否繼續?', '提示', { confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$http.get('/aaaa/task/del?taskId='+this.taskId+'&name='+file.name).then(function(res) { ...... }); }).catch(() => { this.getJarList(); return false; }); },
/*檔案上傳,重寫檔案上傳方法,action的路徑不會起作用*/
myUpload(file){
let fd = new FormData();
fd.append('file',this.file);//傳檔案
fd.append('taskId',this.taskId);//傳其他引數
// fd.append('filename',file.name);//傳其他引數
this.$http.post('/aaaa/task/add',fd).then(function(res) {
....
});
},
fileList一個物件的內容
name:"xxxx.jar"
status:"success"
uid:123456456
引數
this.param={
taskId:this.taskId
}
springboot設定
1.請求的註解:produces = "multipart/form-data;charset=utf-8", method = RequestMethod.POS
@RequestMapping(value = "/add", produces = "multipart/form-data;charset=utf-8", method = RequestMethod.POST)
public String addJar(int taskId, HttpServletRequest request) throws IOException, ServletException {
....
//獲取檔案
Part part = request.getPart("file");// input的name值
String dis = part.getHeader("Content-Disposition");
// 獲取檔名--sdsf.jar
String fna = dis.substring(dis.indexOf("filename=") + 10, dis.length() - 1);
String fname = fna.substring(fna.lastIndexOf("\\") + 1, fna.length());// 有的瀏覽器獲取的是路徑+檔名
// 若是檔名為空,說明此時沒有選擇檔案,返回,檔案上傳失敗,選擇檔案
if (fname.length() < 1) {
//此時沒有選擇檔案
}
....
}