浏览代码

同时支持OSS和MinIO文件上传

macro 5 年之前
父节点
当前提交
6bc6006404
共有 2 个文件被更改,包括 32 次插入8 次删除
  1. 16 4
      src/components/Upload/multiUpload.vue
  2. 16 4
      src/components/Upload/singleUpload.vue

+ 16 - 4
src/components/Upload/multiUpload.vue

@@ -1,8 +1,8 @@
 <template> 
   <div>
     <el-upload
-      action="http://macro-oss.oss-cn-shenzhen.aliyuncs.com"
-      :data="dataObj"
+      :action="useOss?ossUploadUrl:minioUploadUrl"
+      :data="useOss?dataObj:null"
       list-type="picture-card"
       :file-list="fileList"
       :before-upload="beforeUpload"
@@ -44,7 +44,10 @@
           host: ''
         },
         dialogVisible: false,
-        dialogImageUrl:null
+        dialogImageUrl:null,
+        useOss:true, //使用oss->true;使用MinIO->false
+        ossUploadUrl:'http://macro-oss.oss-cn-shenzhen.aliyuncs.com',
+        minioUploadUrl:'http://localhost:8080/minio/upload',
       };
     },
     computed: {
@@ -73,6 +76,10 @@
       },
       beforeUpload(file) {
         let _self = this;
+        if(!this.useOss){
+          //不使用oss不需要获取策略
+          return true;
+        }
         return new Promise((resolve, reject) => {
           policy().then(response => {
             _self.dataObj.policy = response.data.policy;
@@ -89,7 +96,12 @@
         })
       },
       handleUploadSuccess(res, file) {
-        this.fileList.push({url: file.name,url:this.dataObj.host + '/' + this.dataObj.dir + '/' + file.name});
+        let url = this.dataObj.host + '/' + this.dataObj.dir + '/' + file.name;
+        if(!this.useOss){
+          //不使用oss直接获取图片路径
+          url = res.data.url;
+        }
+        this.fileList.push({name: file.name,url:url});
         this.emitInput(this.fileList);
       },
       handleExceed(files, fileList) {

+ 16 - 4
src/components/Upload/singleUpload.vue

@@ -1,8 +1,8 @@
 <template> 
   <div>
     <el-upload
-      action="http://macro-oss.oss-cn-shenzhen.aliyuncs.com"
-      :data="dataObj"
+      :action="useOss?ossUploadUrl:minioUploadUrl"
+      :data="useOss?dataObj:null"
       list-type="picture"
       :multiple="false" :show-file-list="showFileList"
       :file-list="fileList"
@@ -62,7 +62,10 @@
           host: '',
           // callback:'',
         },
-        dialogVisible: false
+        dialogVisible: false,
+        useOss:true, //使用oss->true;使用MinIO->false
+        ossUploadUrl:'http://macro-oss.oss-cn-shenzhen.aliyuncs.com',
+        minioUploadUrl:'http://localhost:8080/minio/upload',
       };
     },
     methods: {
@@ -77,6 +80,10 @@
       },
       beforeUpload(file) {
         let _self = this;
+        if(!this.useOss){
+          //不使用oss不需要获取策略
+          return true;
+        }
         return new Promise((resolve, reject) => {
           policy().then(response => {
             _self.dataObj.policy = response.data.policy;
@@ -96,7 +103,12 @@
       handleUploadSuccess(res, file) {
         this.showFileList = true;
         this.fileList.pop();
-        this.fileList.push({name: file.name, url: this.dataObj.host + '/' + this.dataObj.dir + '/' + file.name});
+        let url = this.dataObj.host + '/' + this.dataObj.dir + '/' + file.name;
+        if(!this.useOss){
+          //不使用oss直接获取图片路径
+          url = res.data.url;
+        }
+        this.fileList.push({name: file.name, url: url});
         this.emitInput(this.fileList[0].url);
       }
     }