一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - VUE UPLOAD 通過ACTION返回上傳結果操作

VUE UPLOAD 通過ACTION返回上傳結果操作

2021-09-17 13:26krystal_me JavaScript

這篇文章主要介紹了VUE UPLOAD 通過ACTION返回上傳結果操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

通過Upload 的action方法 返回不了結果,可以通過on-success方法中獲取返回結果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Upload accept=".xls, .xlsx" :action="uploadUrl" :on-success="onSuccess" :on-error="handleError" :before-upload="beforeUpload" style="float:right">
     <Button type="primary" icon="ios-cloud-upload-outline" >導入</Button>
 </Upload>
-----------------------------------------
computed: {
   uploadUrl() {   
   return baseUrl + "/ImportExcel/";  
  }
//file為ImportExcel方法返回的結果
onSuccess(file){
    if(file.code=="1")
    {
     this.$Message.error("導入失敗:" + file.msg);
     return;
    }     
   },

補充知識:Element-UI中上傳的action地址相對問題

我想要在vue里只出現上傳地址后綴,然后具體的上傳地址,前綴是項目配置里的服務器地址

1、action直接寫相對地址

?
1
2
3
4
5
6
7
8
9
10
11
<el-upload
      class="import-btn"
      :action="/base_data/import_data"
      :data="uplaodData"
      name="files"
      :on-success="uploadSuccess"
      :on-error="uploadError"
      accept="xlsx,xls"
      :show-file-list="false">
      <el-button class="btn light small"><i class="icon iconfont icon-piliangdaoru"></i>批量導入</el-button>
     </el-upload>

這樣的結果,上傳請求的的前綴都是本地localhost:8080,并不是我想要的相對服務器的地址

2、屏蔽掉action地址,我自己寫請求

?
1
2
3
4
5
6
7
8
9
10
<el-upload
      class="import-btn"
      :action="111" //這里隨便寫,反正用不到,但是又必須要寫,無奈
      :before-upload="beforeUpload"
      :on-success="uploadSuccess"
      :on-error="uploadError"
      accept="xlsx,xls"
      :show-file-list="false">
      <el-button class="btn light small"><i class="icon iconfont icon-piliangdaoru"></i>批量導入</el-button>
     </el-upload>

methods里這么寫

?
1
2
3
4
5
6
7
8
9
beforeUpload(file){
  let fd = new FormData();
  fd.append('files',file);//傳文件
  fd.append('id',this.srid);//傳其他參數
  axios.post('/api/up/file',fd).then(function(res){
      alert('成功');
  })
  return false //屏蔽了action的默認上傳
},

這樣的吧但是這樣的我發過去的東西老是空的,應該是我不太懂FormData()的用法吧,但是我單獨用FormData()的get方法,都能get到,后來發現是因為文件編碼問題

默認的文件編碼application/x-www-form-urlencoded是這個,但是上傳文件需要的是multipart/form-data (這個格式的請求太好認, 一長串有沒有,里面包括了文件名…),當然有時候也會是這樣(files: (binary)),都是ok的

啊~,真的要郁悶了,最后還是讓我發現了一種辦法

那就是!!!

1、把全局配置的服務器地址引入

import url from '@/http/http'

2、在data里定義url:‘',

3、在create方法里this.url = url;

4、在上傳組件的action上

?
1
2
3
4
5
6
7
8
9
10
11
<el-upload
      class="import-btn"
      :action="url+this.uploadUrl" //手動拼地址
      :data="uplaodData"
      name="files"
      :on-success="uploadSuccess"
      :on-error="uploadError"
      accept="xlsx,xls"
      :show-file-list="false">
      <el-button class="btn light small"><i class="icon iconfont icon-piliangdaoru"></i>批量導入</el-button>
     </el-upload>

好了,都好了,相對地址是服務器地址,上傳文件編碼也是multipart/form-data

以上這篇VUE UPLOAD 通過ACTION返回上傳結果操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/daniella05/article/details/105370350

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 女人又色又爽又黄 | 九9热这里只有真品 | 色就色欧美综合偷拍区a | 秋霞午夜| 日本mature乱子视频 | 欧美一级片在线看 | 国产精品免费观在线 | 2021国产麻豆剧传媒剧情 | 国产午夜小视频 | 亚洲老头与老太hd | 无遮挡h肉动漫在线观看电车 | 欧美在线视频一区在线观看 | 阿 好深 快点 老师受不了 | 欧洲第一区第二区第三区 | 手机在线观看国产精选免费 | 亚洲AVAV天堂AV在线网爱情 | 很黄的孕妇a级黄毛片 | 九九九国产在线 | avtt在线 | 日韩精品视频美在线精品视频 | 秀婷程仪公欲息肉婷在线观看 | 四虎永久在线精品国产 | 精品欧美一区二区在线观看欧美熟 | 美女岳肉太深了使劲 | 91香蕉视频在线观看 | 亚洲第一区在线观看 | 精品亚洲欧美中文字幕在线看 | 精品国产自在现线拍400部 | 久久精品国产免费播放 | 女主被当众调教虐np | 精品国产一区二区三区在线观看 | 99久在线| 亚洲29p| 国产激情久久久久影院小草 | 国产网站免费观看 | 深夜精品高中女学生 | 99久女女精品视频在线观看 | 精品日本三级在线观看视频 | 亚欧洲乱码视频一二三区 | 男老头澡堂gay老头456 | 久久99国产亚洲高清观着 |