亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue使用el-upload實(shí)現(xiàn)文件上傳功能

 更新時(shí)間:2022年04月21日 16:34:37   作者:潯者  
這篇文章主要為大家詳細(xì)介紹了vue使用el-upload實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

因?yàn)槲沂莢ue+springboot前后分離,要跨域,就不能用默認(rèn)的action寫(xiě)請(qǐng)求地址,我用axios時(shí)最困擾的就是怎么拿到那個(gè)真實(shí)的文件,然后給傳給后臺(tái)。

其實(shí)可以通過(guò)自帶的onchanne觸發(fā)方法獲得文件列表,文件信息中那個(gè)raw就是真實(shí)的文件。

寫(xiě)的時(shí)候,剛開(kāi)始我是直接把el-upload里面的button中加了點(diǎn)擊事件,但是每次文件還沒(méi)選,就已經(jīng)向后臺(tái)發(fā)出請(qǐng)求了,當(dāng)然傳不過(guò)去,于是外面套了個(gè)form。

element-ui組件使用可以查看文檔

upload.vue

<template>
? ? <el-form>
? ? ? ?
? ? ? ? <el-form-item label="姓名" prop="name">
? ? ? ? ? ? <el-input v-model="name"></el-input>
? ? ? ? </el-form-item>
? ? ? ?
? ? ? ? <el-form-item>
? ? ? ? ? ? <el-upload ref="upfile"
? ? ? ? ? ? ? ? style="display: inline"
? ? ? ? ? ? ? ? :auto-upload="false"
? ? ? ? ? ? ? ? :on-change="handleChange"
? ? ? ? ? ? ? ? :file-list="fileList"
? ? ? ? ? ? ? ? action="#">
? ? ? ? ? ? ? ? <el-button ?type="success">選擇文件</el-button>
? ? ? ? ? ? </el-upload>
? ? ? ? </el-form-item>
? ? ? ? <el-form-item>
? ? ? ? ? ? <el-button ?type="success" @click="upload">點(diǎn)擊上傳</el-button>
? ? ? ? </el-form-item>
? ? </el-form>
? ??
</template>
<script>
export default {
? ? name:'UploadUi',
? ? data(){
? ? ? ? return{
? ? ? ? ? ? name:'',
? ? ? ? ? ? fileList:[]
? ? ? ? }
? ? },
? ? methods:{
? ? ? ? //通過(guò)onchanne觸發(fā)方法獲得文件列表
? ? ? ? ?handleChange(file, fileList) {
? ? ? ? ? ? this.fileList = fileList;
? ? ? ? ? ? console.log(fileList)
? ? ? ? },
? ? ? ? upload(){
? ? ? ? ? ??
? ? ? ? ? ? let fd = new FormData();
? ? ? ? ? ? fd.append("name",this.name);
? ? ? ? ? ? this.fileList.forEach(item=>{
? ? ? ? ? ? ? ? //文件信息中raw才是真的文件
? ? ? ? ? ? ? ? fd.append("files",item.raw);
? ? ? ? ? ? ? ? //console.log(item.raw)
? ? ? ? ? ? })
? ? ? ? ? ? this.$axios.post('/uploadUi',fd).then(res=>{
? ? ? ? ? ? ? ? if (res.data.code === 200) {
? ? ? ? ? ? ? ? ? ? //console.log(res);
? ? ? ? ? ? ? ? ? ? this.$message('上傳成功')
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? this.$message('失敗')
? ? ? ? ? ? ? ? }
? ? ? ? ? ? })
? ? ? ? },
? ? }
}
</script>

springboot后臺(tái) uploadController.java

package com.example.demo.controller;
?
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.List;
?
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
?
import com.example.demo.entity.ListParam;
import com.example.demo.entity.MyUser;
import com.example.demo.entity.Result;
?
@RestController
@ResponseBody
@CrossOrigin
@RequestMapping("/api")
public class UploadController {
?? ?
?? ?@PostMapping("/uploadUi")
?? ?public Result upFile(@RequestParam("name")String name,@RequestParam("files") MultipartFile[] files ) {
?? ??? ? System.out.println("開(kāi)始");
?? ??? ? System.out.println(name);
?? ??? ? if(files != null) {
?? ??? ??? ? for(MultipartFile file : files) {
?? ??? ??? ??? ?String fileName = file.getOriginalFilename();
?? ??? ??? ??? ?System.out.println(fileName);
?? ??? ??? ??? ?try{
?? ??? ??? ??? ??? ?File mkdir = new File("F:\\app\\file");
?? ??? ??? ??? ??? ?if(!mkdir.exists()) {
?? ??? ??? ??? ??? ??? ?mkdir.mkdirs();
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?//定義輸出流,將文件寫(xiě)入硬盤(pán)
?? ??? ??? ??? ??? ? FileOutputStream os = new FileOutputStream(mkdir.getPath()+"\\"+fileName);
?? ??? ??? ??? ? ? ? ?InputStream in = file.getInputStream();
?? ??? ??? ??? ? ? ? ?int b = 0;
?? ??? ??? ??? ? ? ? ?while((b=in.read())!=-1){ //讀取文件?
?? ??? ??? ??? ? ? ? ? ?os.write(b);
?? ??? ??? ??? ? ? ? ?}
?? ??? ??? ??? ? ? ? ?os.flush(); //關(guān)閉流?
?? ??? ??? ??? ? ? ? ?in.close();
?? ??? ??? ??? ? ? ? ?os.close();
?? ??? ??? ??? ? ? ? ?
?? ??? ??? ??? ?}catch(Exception ?e) {
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ??? ?return new Result(401,"失敗");
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ? return new Result(200,"成功");
?? ??? ? }else {
?? ??? ??? ? return new Result(401,"文件找不到");
?? ??? ? }
?? ??? ?
?? ?}
?? ?
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論