欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-upload上傳圖片詳細(xì)使用方法

 更新時(shí)間:2023年05月23日 11:37:31   作者:-風(fēng)過無痕  
這篇文章主要介紹了使用vue-upload上傳圖片的詳細(xì)使用說明,文中有相關(guān)的代碼示例供大家參考,感興趣的小伙伴一起跟著小編來學(xué)習(xí)吧

前言

  • 實(shí)際開發(fā)中我們的圖片,文件,PDF我們都應(yīng)該存在文檔服務(wù)器當(dāng)中。從而優(yōu)化代碼,減少代碼文件大小。

  • 我們可以讓后端把文檔服務(wù)器搭建好,寫好相應(yīng)的存儲(chǔ)接口api,我們就可以使用Upload組件上傳。

  • 但是我們需要注意的是,在實(shí)際開發(fā)中。在請求攔截中設(shè)置的token,和userid(用戶id)要重新設(shè)置一次。

  • 因?yàn)槲覀兪鞘褂胾pload組件直接上傳,并沒有經(jīng)過axios,攔截不到。要在headers(請求頭中設(shè)置2個(gè)參數(shù))

代碼實(shí)現(xiàn)

1.在添加表單中使用upload組件(餓了嗎)

<el-form-item label="維保打印記錄:" prop="fileList">
            <!-- <el-input v-model="form.mcRecord" style="width: 350px"></el-input> -->
            <!-- list-type="picture" 上傳圖片的樣式 -->
            <el-upload
              class="upload-demo"
              :action="upload.url"
              :on-preview="handlePreview"
              :headers="upload.headers"
              :on-remove="handleRemove"
              :on-success="handleFileSuccess"
              :file-list="fileList"
              list-type="picture"
              :limit="10"
              :on-exceed="handleExceed"
            >
              <el-button size="small" type="primary">點(diǎn)擊上傳</el-button>
              <div slot="tip" class="el-upload__tip">
                只能上傳jpg/png文件,且不超過500kb
              </div>
            </el-upload>
</el-form-item>

2.在data中設(shè)置參數(shù)

2.1fileList是上傳成功圖片存儲(chǔ)地方,是一個(gè)數(shù)組對象,我是直接轉(zhuǎn)換成數(shù)組字符串存在后端。

2.2url是當(dāng)前連接的后端地址加上api地址

2.3headers是upload屬性,添加api請求頭中的token和tenant-id(用戶id)來驗(yàn)證身份。

2.4getToken,getTenantId,是在utils中的方法,獲取token和用戶id的。

// 上傳圖片成功之后存儲(chǔ)地方
      fileList: [],
      // 圖片上傳地址,和請求頭數(shù)據(jù)
      upload: {
        // 設(shè)置上傳的請求頭部
        headers: { token: getToken(), "tenant-id": getTenantId() },
        // 上傳的地址
        url: process.env.VUE_APP_BASE_API + "/media/upload/coursefile",
      },

3.methods中的方法

為了方便查看,在點(diǎn)擊已經(jīng)上傳成功文件時(shí),會(huì)動(dòng)態(tài)的使用js在document創(chuàng)建一個(gè)img來展示圖片,方便查看。

// 文件上傳成功鉤子
    handleFileSuccess(response, file, fileList) {
      console.log("response", response);
      console.log("file", file);
      console.log("fileList", fileList);
      let x = {};
      x.name = response.filename;
      x.url = response.url;
      x.id = response.id;
      console.log("上傳圖片", x);
      this.fileList.push(x);
    },
    // 點(diǎn)擊已上傳文件右上角刪除鉤子
    handleRemove(file, fileList) {
      // console.log("id", file.id);
      console.log("刪除之后", fileList);
      // const x = this.fileList.findIndex((v) => v.id == file.id);
      // console.log("刪除下標(biāo)", x);
      // this.fileList.splice(x, 1);
      this.fileList = fileList;
      console.log("處理過數(shù)據(jù)", this.fileList);
    },
    // 文件上傳數(shù)量超過設(shè)置數(shù)量
    handleExceed(files, fileList) {
      this.$message.warning(`最多只能選擇10張圖片${fileList.length} 個(gè)文件`);
    },
    // 點(diǎn)擊文件列表中已上傳的文件時(shí)的鉤子
    handlePreview(file) {
      console.log(file);
      const image = new Image();
      image.src = file.url;
      image.onload = () => {
        // 創(chuàng)建彈出層
        console.log("執(zhí)行了");
        const previewContainer = document.createElement("div");
        previewContainer.style.position = "fixed";
        previewContainer.style.top = 0;
        previewContainer.style.bottom = 0;
        previewContainer.style.left = 0;
        previewContainer.style.right = 0;
        previewContainer.style.zIndex = 99999;
        previewContainer.style.backgroundColor = "rgba(0,0,0,0.8)";
        previewContainer.style.display = "flex";
        previewContainer.style.justifyContent = "center";
        previewContainer.style.alignItems = "center";
        document.body.appendChild(previewContainer);
        // 在彈出層中添加圖片
        const previewImage = document.createElement("img");
        previewImage.src = file.url;
        previewImage.style.maxWidth = "80%";
        previewImage.style.maxHeight = "80%";
        previewContainer.appendChild(previewImage);
        // 點(diǎn)擊彈出層,關(guān)閉預(yù)覽
        previewContainer.addEventListener("click", () => {
          document.body.removeChild(previewContainer);
        });
      };
    },

注意:

直接復(fù)制需要根據(jù)實(shí)際情況更改url(api接口路徑),headers中請求頭攜帶的參數(shù)(以request.js文件為準(zhǔn))。

總結(jié):

經(jīng)過這一趟流程下來相信你也對 vue-upload上傳圖片詳細(xì)使用(文檔服務(wù)器) 有了初步的深刻印象,但在實(shí)際開發(fā)中我 們遇到的情況肯定是不一樣的,所以我們要理解它的原理,萬變不離其宗。加油,打工人!

到此這篇關(guān)于vue-upload上傳圖片詳細(xì)使用方法的文章就介紹到這了,更多相關(guān)vue-upload上傳圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3中toRef、toRefs和toRaw的使用

    vue3中toRef、toRefs和toRaw的使用

    本文主要介紹了vue3中toRef、toRefs和toRaw的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Vue替代vuex的存儲(chǔ)庫Pinia詳細(xì)介紹

    Vue替代vuex的存儲(chǔ)庫Pinia詳細(xì)介紹

    這篇文章主要介紹了Vue替代vuex的存儲(chǔ)庫Pinia,聽說pinia與vue3更配,便開啟了vue3的學(xué)習(xí)之路,pinia 和 vuex 具有相同的功效, 是 Vue 的存儲(chǔ)庫,它允許您跨組件/頁面共享狀態(tài)
    2022-09-09
  • Vue.js動(dòng)態(tài)組件解析

    Vue.js動(dòng)態(tài)組件解析

    這篇文章主要為大家詳細(xì)介紹了Vue.js動(dòng)態(tài)組件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Vue實(shí)現(xiàn)簡單基礎(chǔ)的圖片裁剪功能

    Vue實(shí)現(xiàn)簡單基礎(chǔ)的圖片裁剪功能

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue2實(shí)現(xiàn)簡單基礎(chǔ)的圖片裁剪功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2022-09-09
  • Vue標(biāo)簽屬性動(dòng)態(tài)傳參并拼接字符串的操作方法

    Vue標(biāo)簽屬性動(dòng)態(tài)傳參并拼接字符串的操作方法

    這篇文章主要介紹了Vue標(biāo)簽屬性動(dòng)態(tài)傳參并拼接字符串的操作方法,我們需要根據(jù)傳入值的類型,在placeholder屬性賦值"請輸入長度",“請輸入寬度”,"請輸入厚度"等提示字符,本文通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • vue+element實(shí)現(xiàn)動(dòng)態(tài)換膚的示例代碼

    vue+element實(shí)現(xiàn)動(dòng)態(tài)換膚的示例代碼

    本文主要介紹了vue+element實(shí)現(xiàn)動(dòng)態(tài)換膚的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue3 ref 和reactive的區(qū)別詳解

    vue3 ref 和reactive的區(qū)別詳解

    本文主要介紹了vue3 ref 和reactive的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • vscode 使用Prettier插件格式化配置使用代碼詳解

    vscode 使用Prettier插件格式化配置使用代碼詳解

    這篇文章主要介紹了vscode 使用Prettier插件格式化配置使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • vue實(shí)現(xiàn)3D環(huán)形圖效果

    vue實(shí)現(xiàn)3D環(huán)形圖效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)3D環(huán)形圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 基于vue開發(fā)微信小程序mpvue-docs跳轉(zhuǎn)頁面功能

    基于vue開發(fā)微信小程序mpvue-docs跳轉(zhuǎn)頁面功能

    這篇文章主要介紹了基于vue寫微信小程序mpvue-docs跳轉(zhuǎn)頁面,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04

最新評論