Browse Source

文件上传组件添加文件大小

lizhenhao 2 năm trước cách đây
mục cha
commit
b70e5dd5e0
2 tập tin đã thay đổi với 27 bổ sung3 xóa
  1. 7 0
      src/api/sys/OSSService.js
  2. 20 3
      src/views/common/UpLoadComponent.vue

+ 7 - 0
src/api/sys/OSSService.js

@@ -24,6 +24,13 @@ export default class OSSSerive {
       params: {url: url}
     })
   }
+  getFileSizeByUrl (url) {
+    return request({
+      url: '/oss/file/getFileSizeByUrl',
+      method: 'get',
+      params: {url: url}
+    })
+  }
   deleteMsgById (id) {
     return request({
       url: '/oss/file/deleteMsgById',

+ 20 - 3
src/views/common/UpLoadComponent.vue

@@ -36,6 +36,11 @@
             </div>
           </template>
         </el-table-column>
+        <el-table-column label="文件大小" prop="size" align="center">
+          <template slot-scope="scope">
+            {{getSize(scope.row.size)}}
+          </template>
+        </el-table-column>
         <el-table-column label="创建人" prop="createBy.name" align="center"></el-table-column>
         <el-table-column label="创建时间" prop="createDate" align="center"></el-table-column>
         <el-table-column label="操作" width="200px" fixed="right" align="center">
@@ -121,8 +126,9 @@
         }
         this.auth = auth
         for await (let item of fileList) {
-          await this.ossService.getTemporaryUrl(item.url).then((data) => {
-            item.lsUrl = data.data
+          await this.ossService.getFileSizeByUrl(item.url).then((data) => {
+            item.lsUrl = data.data.url
+            item.size = data.data.size
             this.dataList.push(item)
             this.dataListNew.push(item)
           })
@@ -138,8 +144,19 @@
         this.loadProgress = parseInt(event.percent) // 动态获取文件上传进度
         if (this.loadProgress >= 100) {
           this.loadProgress = 100
-          setTimeout(() => { this.progressFlag = false }, 1000) // 一秒后关闭进度条
+          setTimeout(() => {
+            this.progressFlag = false
+          }, 1000) // 一秒后关闭进度条
+        }
+      },
+      getSize (value) {
+        if (value === 0) {
+          return '0 B'
         }
+        let k = 1024
+        let sizes = ['B', 'KB', 'MB', 'GB', 'PB', 'TB', 'EB', 'ZB', 'YB']
+        let i = Math.floor(Math.log(value) / Math.log(k))
+        return (value / Math.pow(k, i)).toPrecision(3) + '' + sizes[i]
       },
       async changes (file, fileList) {
         // if (file.status !== 'ready') {