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

element-ui 文件上傳修改文件名的方法示例

 更新時(shí)間:2019年11月05日 08:25:41   作者:TJ-XiaJiaHao  
這篇文章主要介紹了element-ui 文件上傳修改文件名的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

技術(shù)背景

Vue + axios + element-ui

問(wèn)題的產(chǎn)生

一個(gè)美好的周五,我正在愉快地打著代碼,突然收到一封來(lái)自產(chǎn)品的神秘消息,線上活動(dòng)出 BUG 了!吶尼!怎么可能!一定是你的打開(kāi)方式不對(duì)!打開(kāi)消息截圖,線上的一個(gè)聊天室背景突然變成了另一張毫無(wú)關(guān)聯(lián)的圖(一個(gè)大大的太陽(yáng)),我一看,這不是我剛剛上傳的一個(gè)圖嘛!為什么跑到那里去了!

問(wèn)題定位

我們所有的靜態(tài)資源(比如圖片)都會(huì)上傳到一個(gè)服務(wù)器上,在活動(dòng)中訪問(wèn)時(shí)會(huì)統(tǒng)一訪問(wèn)靜態(tài)資源服務(wù)器,而靜態(tài)資源上傳時(shí)并沒(méi)有處理重名問(wèn)題?。?!接口側(cè)僅僅是在前面加了一個(gè)4位數(shù)的隨機(jī)數(shù),也就是說(shuō),當(dāng)同名圖片超過(guò) 10000 張時(shí),百分百會(huì)有圖片被覆蓋?。](méi)錯(cuò)是直接覆蓋而不是報(bào)錯(cuò)!即使不到10000張,同名數(shù)量越多,被覆蓋概率也就越高。

開(kāi)始甩鍋

遇到問(wèn)題不用慌!只要鍋甩的好,一切問(wèn)題都不是問(wèn)題!我直接找到后臺(tái)負(fù)責(zé)人,描述了一下情況,只見(jiàn)他云淡風(fēng)輕地說(shuō)了一句:這不是我的 KPI 。???我 ** 你個(gè) xx,男人都是大豬蹄子!靠別人是不行了,只能靠自己,還是自己搞一下吧。

嘗試偷懶

element-ui 屹立這么多年,我相信它一定能夠完成修改文件名的重任,于是滿懷期待地打開(kāi)官方文檔,很好!不支持!現(xiàn)在是周五晚上六點(diǎn)半,很好,注定又不能好好吃飯了!

攔截文件上傳

文件對(duì)象(file)是不能直接修改文件名的,file.name 是只讀屬性,如果你強(qiáng)行賦值,會(huì)直接報(bào)錯(cuò),所以只能攔截掉 element-ui -> uploader 的默認(rèn)上傳行為,改為自己上傳。下面為核心 HTML 代碼,主要是利用 before-upload 事件來(lái)阻止上傳

<el-upload :before-upload="beforeUpload">
  <i class="el-icon-plus" />
</el-upload>

beforeUpload 代碼:既然 file.name 是只讀屬性,那就只能新建一個(gè) file 對(duì)象了。你不仁,就不要怪我不義了!新建的文件名為時(shí)間戳 + 原文件名。

beforeUpload(file) {
  const timeStamp = new Date() - 0
  const copyFile = new File([file], `${timeStamp}_${file.name}`)
  this.uploadFile(copyFile)
  return false
}

uploadFile 代碼:構(gòu)建一個(gè) FormData 對(duì)象,僅此而已!

uploadFile(file) {
  const formdata = new FormData()
  formdata.append('lbf-file-upload', file)
  formdata.append('name', 'lbf-file-upload')
  formdata.append('_csrfToken', this.$ajax.getCsrfToken()._csrfToken)
  this.postForm(formdata)
}

postForm 代碼:利用 axios 庫(kù)上傳到服務(wù)器。

postForm(formdata) {
  this.$ajax.post('/xxx/ajax/general/file/files', formdata).then(res => {
    if (res.code == null || res.code === 0) {
      // do something
    } else {
      this.$message.error(res.msg || res.message || '文件上傳失敗')
    }
  }).catch((err) => {
    this.$message.error(err.message || '文件上傳失敗')
  })
}

就此搞定!以后所有的文件上傳都將自動(dòng)帶上時(shí)間戳前綴,后臺(tái)4位隨機(jī)數(shù)機(jī)制 + 時(shí)間戳 + 文件名,要再想覆蓋,簡(jiǎn)直難如程序員找女朋友!

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

相關(guān)文章

  • vue 返回上一頁(yè),頁(yè)面樣式錯(cuò)亂的解決

    vue 返回上一頁(yè),頁(yè)面樣式錯(cuò)亂的解決

    今天小編就為大家分享一篇vue 返回上一頁(yè),頁(yè)面樣式錯(cuò)亂的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue3封裝自動(dòng)滾動(dòng)列表指令(含網(wǎng)頁(yè)縮放滾動(dòng)問(wèn)題)

    Vue3封裝自動(dòng)滾動(dòng)列表指令(含網(wǎng)頁(yè)縮放滾動(dòng)問(wèn)題)

    本文主要介紹了Vue3封裝自動(dòng)滾動(dòng)列表指令(含網(wǎng)頁(yè)縮放滾動(dòng)問(wèn)題),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Vue.js系列之vue-router(上)(3)

    Vue.js系列之vue-router(上)(3)

    這篇文章主要介紹了Vue.js系列之vue-router(上)(3)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • vue通過(guò)點(diǎn)擊事件讀取音頻文件的方法

    vue通過(guò)點(diǎn)擊事件讀取音頻文件的方法

    最近做項(xiàng)目遇到這樣的一個(gè)需求,通過(guò)select元素來(lái)選擇音頻文件的名稱,點(diǎn)擊按鈕可以進(jìn)行試聽(tīng)。接下來(lái)通過(guò)本文給大家介紹vue項(xiàng)目中通過(guò)點(diǎn)擊事件讀取音頻文件的方法,需要的朋友可以參考下
    2018-05-05
  • vue+springboot實(shí)現(xiàn)登錄功能

    vue+springboot實(shí)現(xiàn)登錄功能

    這篇文章主要為大家詳細(xì)介紹了vue+springboot實(shí)現(xiàn)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue 支持百萬(wàn)量級(jí)的無(wú)限滾動(dòng)組件詳解

    vue 支持百萬(wàn)量級(jí)的無(wú)限滾動(dòng)組件詳解

    這篇文章主要為大家介紹了vue 支持百萬(wàn)量級(jí)的無(wú)限滾動(dòng)組件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • el-select下拉選擇緩存的實(shí)現(xiàn)

    el-select下拉選擇緩存的實(shí)現(xiàn)

    本文主要介紹了在使用el-select實(shí)現(xiàn)下拉選擇緩存時(shí)遇到的問(wèn)題及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • vue中的路由跳轉(zhuǎn)tabBar圖片和文字的高亮效果

    vue中的路由跳轉(zhuǎn)tabBar圖片和文字的高亮效果

    這篇文章主要介紹了vue中的路由跳轉(zhuǎn)tabBar圖片和文字的高亮效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue2+element-ui新增編輯表格+刪除行功能

    vue2+element-ui新增編輯表格+刪除行功能

    這篇文章主要介紹了vue2+element-ui新增編輯表格+刪除行功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Vue循環(huán)組件加validate多表單驗(yàn)證的實(shí)例

    Vue循環(huán)組件加validate多表單驗(yàn)證的實(shí)例

    今天小編就為大家分享一篇Vue循環(huán)組件加validate多表單驗(yàn)證的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論

衡水市| 永清县| 池州市| 桦南县| 镇平县| 武鸣县| 华容县| 浏阳市| 湘乡市| 池州市| 博客| 银川市| 镇赉县| 静乐县| 马边| 禄丰县| 县级市| 武定县| 隆昌县| 讷河市| 达拉特旗| 西盟| 石棉县| 诏安县| 鄂托克前旗| 科尔| 丹江口市| 张家口市| 定安县| 新绛县| 织金县| 无棣县| 沙田区| 安远县| 库车县| 滨州市| 溧水县| 临夏市| 兰西县| 南江县| 托克逊县|