最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

因為我是vue+springboot前后分離,要跨域,就不能用默認的action寫請求地址,我用axios時最困擾的就是怎么拿到那個真實的文件,然后給傳給后臺。

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

寫的時候,剛開始我是直接把el-upload里面的button中加了點擊事件,但是每次文件還沒選,就已經(jīng)向后臺發(fā)出請求了,當然傳不過去,于是外面套了個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">點擊上傳</el-button>
? ? ? ? </el-form-item>
? ? </el-form>
? ??
</template>
<script>
export default {
? ? name:'UploadUi',
? ? data(){
? ? ? ? return{
? ? ? ? ? ? name:'',
? ? ? ? ? ? fileList:[]
? ? ? ? }
? ? },
? ? methods:{
? ? ? ? //通過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后臺 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("開始");
?? ??? ? 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();
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?//定義輸出流,將文件寫入硬盤
?? ??? ??? ??? ??? ? 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,"文件找不到");
?? ??? ? }
?? ??? ?
?? ?}
?? ?
}

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

相關(guān)文章

  • vue實現(xiàn)背景圖片鋪滿整個屏幕(適配所有機型)

    vue實現(xiàn)背景圖片鋪滿整個屏幕(適配所有機型)

    在網(wǎng)頁設(shè)計中,背景全屏是一種常見的視覺效果,通過正確的CSS樣式設(shè)置,可以實現(xiàn)背景全屏且內(nèi)容在固定一屏大小內(nèi)完全顯示,如果內(nèi)容超出一屏,則可以通過滾動條查看剩余內(nèi)容,這種設(shè)計可以提升用戶的瀏覽體驗,使網(wǎng)頁看起來更加整潔和專業(yè)
    2024-10-10
  • 多個Vue項目部署到服務(wù)器的步驟記錄

    多個Vue項目部署到服務(wù)器的步驟記錄

    這篇文章主要給大家介紹了關(guān)于多個Vue項目部署到服務(wù)器的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • vue組件實現(xiàn)列表自動無限循環(huán)的方法

    vue組件實現(xiàn)列表自動無限循環(huán)的方法

    最近剛好有個功能需要實現(xiàn)列表的無限循環(huán)滾動,這篇文章主要給大家介紹了關(guān)于vue組件實現(xiàn)列表自動無限循環(huán)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • vue使用ArcGis?API?for?js創(chuàng)建地圖實現(xiàn)示例

    vue使用ArcGis?API?for?js創(chuàng)建地圖實現(xiàn)示例

    這篇文章主要為大家介紹了vue使用ArcGis?API?for?js創(chuàng)建地圖實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Vue CLI2升級至Vue CLI3的方法步驟

    Vue CLI2升級至Vue CLI3的方法步驟

    這篇文章主要介紹了Vue CLI2升級至Vue CLI3的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue實現(xiàn)列表無縫循環(huán)滾動

    vue實現(xiàn)列表無縫循環(huán)滾動

    這篇文章主要為大家詳細介紹了vue實現(xiàn)列表無縫循環(huán)滾動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 解決Vue中的生命周期beforeDestory不觸發(fā)的問題

    解決Vue中的生命周期beforeDestory不觸發(fā)的問題

    這篇文章主要介紹了解決Vue中的生命周期beforeDestory不觸發(fā)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • el-select 點擊按鈕滾動到選擇框頂部的實現(xiàn)代碼

    el-select 點擊按鈕滾動到選擇框頂部的實現(xiàn)代碼

    本文通過實例代碼給大家分享el-select 點擊按鈕滾動到選擇框頂部效果,主要代碼是在visibleChange在這個popper里面找到.el-select-dropdown__list,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • vue axios 在頁面切換時中斷請求方法 ajax

    vue axios 在頁面切換時中斷請求方法 ajax

    下面小編就為大家分享一篇vue axios 在頁面切換時中斷請求方法 ajax,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 一文詳解Vue3的watch是如何實現(xiàn)監(jiān)聽的

    一文詳解Vue3的watch是如何實現(xiàn)監(jiān)聽的

    watch這個API大家都很熟悉,今天這篇文章小編來帶你搞清楚Vue3的watch是如何實現(xiàn)對響應(yīng)式數(shù)據(jù)進行監(jiān)聽的,希望對大家有一定的幫助
    2024-11-11

最新評論

游戏| 元氏县| 北碚区| 甘肃省| 华宁县| 锡林浩特市| 岑巩县| 萝北县| 天台县| 清丰县| 余干县| 衡南县| 余干县| 葫芦岛市| 明水县| 普格县| 湖南省| 商丘市| 建德市| 宽甸| 祥云县| 建始县| 拜城县| 安远县| 平谷区| 乐清市| 荔浦县| 吉林市| 平江县| 海南省| 沽源县| 藁城市| 黔东| 邯郸县| 博野县| 浮山县| 中西区| 淮安市| 南和县| 河池市| 太仓市|