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

Vue實現(xiàn)讀取本地圖片的示例代碼

 更新時間:2023年07月16日 15:52:28   作者:小和尚敲木頭  
這篇文章主要為大家詳細介紹了如何利用Vue實現(xiàn)讀取本地圖片的功能,文中的示例代碼講解詳細,具有一定的參考價值,需要的小伙伴可以學習一下

制作一個簡單的展示頁面

需要讀取本地靜態(tài)文件獲取文字信息 和確定圖片路勁

剛開始都是使用new XMLHttpRequest()。本地測試都沒有問題。但是部署到云服務器時 對圖片的判斷就失效了 無論請求地址多少 返回響應碼都是200.(沒有找到原因)。 所以更換了方式 使用img的加載失敗回調(diào)方法。

url中文編碼問題(也是本地測試沒問題,線上就必須轉碼了)decodeURI()

官方文檔

// app.vue
<template>
  <div id="app">
    <div class="header">
      <div class="main">
        <div class="drug-name">
          <span>{{drugName}}</span>
        </div>
        <div class="drug-img">
          <img :src="drugImg" :alt="drugName" @error="imageLoadError">
        </div>
        <div class="drug-info" v-html="drugInfo"></div>
      </div>
    </div>
  </div>
</template>
<script >
export default {
  components: {
  },
  created() {
    this.init()
    this.OpenPup();
    // this.imgChange();
    console.log(this.$route.query)
  },
  data(){
    return {
      drugName: '',
      drugInfo: '',
      drugImg: '',
      imgCheckCount: 0
    }
  },
  methods:{
    init(){
      this.drugName=decodeURI(this.$route.query.drugName)
      // this.drugName=decodeURI(this.$route.query.drugName)
      console.log(this.$route.query.drugName)
      // var destr = UrlDecode(str);
      // this.imgChange()
      this.drugImg = 'image/'+this.drugName+'.jpg'
    },
    imageLoadError(e){
      console.log("onerror")
      // this.drugImg = 'image/'+this.drugName+'.JPG'
      // this.loadingOnOff = true
      this.imgCheckCount += 1
      this.imgCheks()
      e.target.onerror = null
    },
    imgCheks(){
      if(this.imgCheckCount === 1){
        this.drugImg = 'image/'+this.drugName+'.JPG'
      }else if(this.imgCheckCount === 2){
        this.drugImg = 'image/'+this.drugName+'1.jpg'
      }else if(this.imgCheckCount === 3){
        this.drugImg = 'image/'+this.drugName+'1.JPG'
      }
    },
    imgChange(){
      // console.log("ceshi"+this.drugName)
      // console.log("ceshi"+this.isFileExist('image/'+this.drugName+'.jpg'))
      // console.log("ceshi"+this.isFileExist('image/'+this.drugName+'1.jpg'))
      if(this.checkImg('image/'+this.drugName+'.jpg')){
        this.drugImg = 'image/'+this.drugName+'.jpg'
      }else if(this.checkImg('image/'+this.drugName+'.JPG')){
        this.drugImg = 'image/'+this.drugName+'.JPG'
      }else if(this.checkImg('image/'+this.drugName+'1.jpg')){
        this.drugImg = 'image/'+this.drugName+'1.jpg'
      }else if(this.checkImg('image/'+this.drugName+'1.JPG')){
        this.drugImg = 'image/'+this.drugName+'1.JPG'
      }
      // console.log(this.drugImg)
      // console.log(this.isFileExist('image/'+this.drugName+'.jpg'))
    },
    OpenPup(){
      let xhr = new XMLHttpRequest()
      //  let okStatus = document.location.protocol === "file:" ? 0 : 200;
      // xhr.open("GET", val.url, false); // 線上鏈接地址
      // let drugUrl = this.drugName+".text"
      let drugUrl = 'drug/'+this.drugName+".txt"
      xhr.open("GET", drugUrl, false); // public文件夾下的絕對路徑
      xhr.overrideMimeType("txt/html;charset=utf-8")
      xhr.send(null)
      // console.log(xhr.responseText)  // xhr.responseText為文本中的內(nèi)容
      this.drugInfo = xhr.responseText
      // console.log(this.drugInfo)
    },
    // // 判斷本地是否有該文件
    // showimg (url) {
    //   // 判斷結果
    //   let result = false
    //   url = './' + url
    //   // 獲取該目錄下所有文件名
    //   const files = require.context('public/image/', false, /\.jpg$/)
    //   console.log(files.keys())
    //   const filedata = files.keys()
    //   // 判斷是否有該文件
    //   filedata.forEach((item) => {
    //     if (item === url) {
    //       result = true
    //     }
    //   })
    //   // 返回結果
    //   return result
    // },
    isFileExist(filePath) {
      let xhr = new XMLHttpRequest();
      xhr.open('GET', filePath, false);
      xhr.send();
      console.log(xhr)
      return xhr.status === 200;
    },
    checkImg(imgurl) {
      var imgObj = new Image();
      imgObj.src = imgurl;
      imgObj.onload = function (res) {
        return true;
        console.log('有效鏈接')
      }
      imgObj.onerror = function (err) {
        return false;
        console.log('無效鏈接')
      }
    }
  }
};
</script>
<style lang="less">
//#app {
//  font-family: Avenir, Helvetica, Arial, sans-serif;
//  -webkit-font-smoothing: antialiased;
//  -moz-osx-font-smoothing: grayscale;
//  text-align: center;
//  color: #2c3e50;
//}
html,body{ width: 100%; height: 100%; overflow: scroll;}
html::-webkit-scrollbar, body::-webkit-scrollbar{width:0px;height:0px;}
body{
  margin: 0;
  padding: 0;
}
#app{
  width: 100vw;
  margin: 0;
  padding: 0;
}
.header {
  /*line-height: 1.5;*/
  /*max-height: 100vh;*/
  margin: 0;
  padding: 0;
  width: 100vw;
  background-color: blanchedalmond;
}
.main{
  margin: 0 5vw;
  width: 90vw;
  min-height: 100vh;
  background-color: white;
}
.drug-name{
  margin-bottom: 10vw;
  padding-top: 10vw;
  text-align:center
}
.drug-name span{
  /*margin: auto;*/
  /*margin-left: 50px;*/
  color: #181818;
  font-size: 32px;
  font-weight: bold;
  display: inline-block;
  margin: 0 auto;
  text-align: center;
}
.drug-img {
  text-align:center
}
.drug-img img{
  max-width: 80vw;
  height: auto;
  width: auto;
  margin: auto;
  text-align:center
}
.drug-info {
  margin: 5vw 5vw 0;
  padding-bottom: 5vw;
  font-size: 16px;
  color: #181818;
  line-height: 30px;
  overflow: auto;
}
.drug-info span{
  font-size: 16px;
  color: #181818;
}
h1 {
  font-size: 20px;
  text-align: left;
  margin-bottom: 10px;
}
::v-deep p{
  margin-bottom: 15px;
}
::v-deep b {
  font-size: 19px;
  font-weight: bold;
  /*margin-bottom: 15px;*/
  /*padding-bottom: 15px;*/
  text-indent:2em;
}
</style>

以上就是Vue實現(xiàn)讀取本地圖片的示例代碼的詳細內(nèi)容,更多關于Vue讀取本地圖片的資料請關注腳本之家其它相關文章!

相關文章

  • element如何初始化組件功能詳解

    element如何初始化組件功能詳解

    Element UI是一套基于Vue的桌面端組件庫,封裝好了很多常用的UI組件,下面這篇文章主要給大家介紹了關于element如何初始化組件功能的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Vue3?組件之間傳值及適用場景分析

    Vue3?組件之間傳值及適用場景分析

    這篇文章主要介紹了Vue3組件之間傳值及適用場景分析,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-05-05
  • 詳解Vue如何支持JSX語法

    詳解Vue如何支持JSX語法

    這篇文章主要介紹了詳解Vue如何支持JSX語法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Vue移動端右滑屏幕返回上一頁附源碼下載

    Vue移動端右滑屏幕返回上一頁附源碼下載

    這篇文章主要介紹了Vue移動端右滑屏幕返回上一頁,本文結合實例給大家介紹的非常詳細,并附有源碼下載,需要的朋友可以參考下
    2019-06-06
  • vue-router之解決addRoutes使用遇到的坑

    vue-router之解決addRoutes使用遇到的坑

    這篇文章主要介紹了vue-router之解決addRoutes使用遇到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 淺談Vue 初始化性能優(yōu)化

    淺談Vue 初始化性能優(yōu)化

    本篇文章主要介紹了淺談Vue 初始化性能優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • vue3.0在子組件中觸發(fā)的父組件函數(shù)方式

    vue3.0在子組件中觸發(fā)的父組件函數(shù)方式

    這篇文章主要介紹了vue3.0在子組件中觸發(fā)的父組件函數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue?WebPack忽略指定文件或目錄方式

    Vue?WebPack忽略指定文件或目錄方式

    這篇文章主要介紹了Vue?WebPack忽略指定文件或目錄方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 專業(yè)級Vue?多級菜單設計

    專業(yè)級Vue?多級菜單設計

    這篇文章主要為大家介紹了專業(yè)級的Vue?多級菜單設計實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 在Vue中使用Echarts實例圖的方法實例

    在Vue中使用Echarts實例圖的方法實例

    這篇文章主要給大家介紹了關于如何在Vue中使用Echarts實例圖的相關資料,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10

最新評論

营口市| 桐梓县| 阿拉善右旗| 通许县| 宝丰县| 大名县| 九寨沟县| 衡阳市| 东宁县| 奎屯市| 内乡县| 北安市| 焦作市| 长治市| 巴楚县| 扶绥县| 孝义市| 正定县| 朔州市| 常德市| 北碚区| 西林县| 横峰县| 漾濞| 朝阳县| 颍上县| 武胜县| 宁河县| 通辽市| 萍乡市| 三亚市| 铁岭市| 本溪| 高雄市| 舒兰市| 红河县| 安阳市| 绥德县| 吴旗县| 韶山市| 浪卡子县|