国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

使用iView Upload 組件實現手動上傳圖片的示例代碼

來源:懂視網 責編:小采 時間:2020-11-27 22:06:40
文檔

使用iView Upload 組件實現手動上傳圖片的示例代碼

使用iView Upload 組件實現手動上傳圖片的示例代碼:在過去,瀏覽器是不允許我們讀取本地的文件,包括圖片。因此,當我們需要預覽一個圖片的時候,往往先將它傳送到服務端,然后服務端返回一個訪問 url 地址,達到預覽圖片的功能。如今,隨著標準不斷的改善,JavaScript 里的 API 越來越多,我們可以通過直接讀
推薦度:
導讀使用iView Upload 組件實現手動上傳圖片的示例代碼:在過去,瀏覽器是不允許我們讀取本地的文件,包括圖片。因此,當我們需要預覽一個圖片的時候,往往先將它傳送到服務端,然后服務端返回一個訪問 url 地址,達到預覽圖片的功能。如今,隨著標準不斷的改善,JavaScript 里的 API 越來越多,我們可以通過直接讀

在過去,瀏覽器是不允許我們讀取本地的文件,包括圖片。因此,當我們需要預覽一個圖片的時候,往往先將它傳送到服務端,然后服務端返回一個訪問 url 地址,達到預覽圖片的功能。如今,隨著標準不斷的改善,JavaScript 里的 API 越來越多,我們可以通過直接讀取本地文件的方式來加載我們想要看到的文本或者圖片,一定程度上減少了服務端的壓力。

Upload 組件參考文檔:https://www.iviewui.com/components/upload

文檔提供的參考代碼:

<template>
 <div class="demo-upload-list" v-for="item in uploadList">
 <template v-if="item.status === 'finished'">
 ![](item.url)
 <div class="demo-upload-list-cover">
 <Icon type="ios-eye-outline" @click.native="handleView(item.name)"></Icon>
 <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
 </div>
 </template>
 <template v-else>
 <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
 </template>
 </div>
 <Upload
 ref="upload"
 :show-upload-list="false"
 :default-file-list="defaultList"
 :on-success="handleSuccess"
 :format="['jpg','jpeg','png']"
 :max-size="2048"
 :on-format-error="handleFormatError"
 :on-exceeded-size="handleMaxSize"
 :before-upload="handleBeforeUpload"
 multiple
 type="drag"
 action="http://jsonplaceholder.typicode.com/posts/"
 style="display: inline-block;width:58px;">
 <div style="width: 58px;height:58px;line-height: 58px;">
 <Icon type="camera" size="20"></Icon>
 </div>
 </Upload>
 <Modal title="查看圖片" v-model="visible">
 ![]('https://o5wwk8baw.qnssl.com/' + imgName + '/large')
 </Modal>
</template>
<script>
 export default {
 data () {
 return {
 defaultList: [
 {
 'name': 'a42bdcc1178e62b4694c830f028db5c0',
 'url': 'https://o5wwk8baw.qnssl.com/a42bdcc1178e62b4694c830f028db5c0/avatar'
 },
 {
 'name': 'bc7521e033abdd1e92222d733590f104',
 'url': 'https://o5wwk8baw.qnssl.com/bc7521e033abdd1e92222d733590f104/avatar'
 }
 ],
 imgName: '',
 visible: false,
 uploadList: []
 }
 },
 methods: {
 handleView (name) {
 this.imgName = name;
 this.visible = true;
 },
 handleRemove (file) {
 // 從 upload 實例刪除數據
 const fileList = this.$refs.upload.fileList;
 this.$refs.upload.fileList.splice(fileList.indexOf(file), 1);
 },
 handleSuccess (res, file) {
 // 因為上傳過程為實例,這里模擬添加 url
 file.url = 'https://o5wwk8baw.qnssl.com/7eb99afb9d5f317c912f08b5212fd69a/avatar';
 file.name = '7eb99afb9d5f317c912f08b5212fd69a';
 },
 handleFormatError (file) {
 this.$Notice.warning({
 title: '文件格式不正確',
 desc: '文件 ' + file.name + ' 格式不正確,請上傳 jpg 或 png 格式的圖片。'
 });
 },
 handleMaxSize (file) {
 this.$Notice.warning({
 title: '超出文件大小限制',
 desc: '文件 ' + file.name + ' 太大,不能超過 2M。'
 });
 },
 handleBeforeUpload () {
 const check = this.uploadList.length < 5;
 if (!check) {
 this.$Notice.warning({
 title: '最多只能上傳 5 張圖片。'
 });
 }
 return check;
 }
 },
 mounted () {
 this.uploadList = this.$refs.upload.fileList;
 }
 }
</script>
<style>
 .demo-upload-list{
 display: inline-block;
 width: 60px;
 height: 60px;
 text-align: center;
 line-height: 60px;
 border: 1px solid transparent;
 border-radius: 4px;
 overflow: hidden;
 background: #fff;
 position: relative;
 box-shadow: 0 1px 1px rgba(0,0,0,.2);
 margin-right: 4px;
 }
 .demo-upload-list img{
 width: 100%;
 height: 100%;
 }
 .demo-upload-list-cover{
 display: none;
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 background: rgba(0,0,0,.6);
 }
 .demo-upload-list:hover .demo-upload-list-cover{
 display: block;
 }
 .demo-upload-list-cover i{
 color: #fff;
 font-size: 20px;
 cursor: pointer;
 margin: 0 2px;
 }
</style>

自己實現手動上傳:

<template>
 <div>
 <div class="demo-upload-list" v-for="item in uploadList">
 ![](item.url)
 <div class="demo-upload-list-cover">
 <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
 </div>
 </div>
 <Upload ref="upload" :show-upload-list="false" :format="['jpg','jpeg','png']" :max-size="2048" :before-upload="handleBeforeUpload" :on-format-error="handleFormatError" :on-exceeded-size="handleMaxSize" type="drag" action="http://jsonplaceholder.typicode.com/posts/" style="display: inline-block;width:58px;">
 <div style="width: 58px;height:58px;line-height: 58px;">
 <Icon type="camera" size="20"></Icon>
 </div>
 </Upload>
 </div>
</template>
<script>
export default {
 methods: {
 data(){
 return {
 uploadList: []
 }
 },
 handleBeforeUpload(file) {
 // 創建一個 FileReader 對象
 let reader = new FileReader()
 // readAsDataURL 方法用于讀取指定 Blob 或 File 的內容
 // 當讀操作完成,readyState 變為 DONE,loadend 被觸發,此時 result 屬性包含數據:URL(以 base64 編碼的字符串表示文件的數據)
 // 讀取文件作為 URL 可訪問地址
 reader.readAsDataURL(file)

 const _this = this
 reader.onloadend = function (e) {
 file.url = reader.result
 _this.uploadList.push(file)
 }
 },
 handleRemove(file) {
 this.uploadList.splice(this.uploadList.indexOf(file), 1)
 },
 handleFormatError(file) {
 this.$Notice.warning({
 title: '文件格式不正確',
 desc: '文件 ' + file.name + ' 格式不正確,請上傳 jpg 或 png 格式的圖片。'
 })
 },
 handleMaxSize(file) {
 this.$Notice.warning({
 title: '超出文件大小限制',
 desc: '文件 ' + file.name + ' 太大,不能超過 2M。'
 })
 }
 }
}
</script>
<style scoped>
.demo-upload-list {
 display: inline-block;
 width: 60px;
 height: 60px;
 text-align: center;
 line-height: 60px;
 border: 1px solid transparent;
 border-radius: 4px;
 overflow: hidden;
 background: #fff;
 position: relative;
 box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
 margin-right: 4px;
}

.demo-upload-list img {
 width: 100%;
 height: 100%;
}

.demo-upload-list-cover {
 display: none;
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 background: rgba(0, 0, 0, .6);
}

.demo-upload-list:hover .demo-upload-list-cover {
 display: block;
}

.demo-upload-list-cover i {
 color: #fff;
 font-size: 20px;
 cursor: pointer;
 margin: 0 2px;
}

.ivu-icon {
 line-height: 58px;
}
</style>

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

使用iView Upload 組件實現手動上傳圖片的示例代碼

使用iView Upload 組件實現手動上傳圖片的示例代碼:在過去,瀏覽器是不允許我們讀取本地的文件,包括圖片。因此,當我們需要預覽一個圖片的時候,往往先將它傳送到服務端,然后服務端返回一個訪問 url 地址,達到預覽圖片的功能。如今,隨著標準不斷的改善,JavaScript 里的 API 越來越多,我們可以通過直接讀
推薦度:
標簽: 圖片 代碼 圖片的
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产未成女年一区二区 | 222aaa免费国产在线观看 | 亚洲精品综合久久中文字幕 | 国产一区精品在线 | 国产一级片视频 | 欧美黄色一级视频 | 亚洲欧美日韩精品高清 | 亚洲色图欧美另类 | 在线观看日韩欧美 | 久久久国产这里有的是精品 | 综合欧美亚洲 | 亚洲精品美女久久久aaa | 青青国产在线 | 国产高清一区二区三区 | 激情一区二区三区成人 | 自拍偷自拍亚洲精品被多人伦好爽 | 欧美亚洲网 | 欧美在线视频二区 | 欧美精品在线免费观看 | 国产日韩视频在线 | 欧美 日韩 中文 | 亚洲欧美日韩精品高清 | 日韩欧美在线综合网 | 欧美 日韩 亚洲另类专区 | 综合亚洲一区二区三区 | 国产精品视频播放 | 欧美亚洲视频在线观看 | 国产在线观看第一页 | 麻豆国产高清精品国在线 | 精品久久久久国产 | 国产网站免费 | 亚洲高清在线观看 | 欧美精品一区二区三区视频 | 久久国产亚洲欧美日韩精品 | 日本一二三高清 | 国产一区二区免费视频 | 欧美日韩国产综合视频在线看 | 国产在线成人一区二区 | 婷婷久久五月天 | 日韩欧美一区二区三区在线 | 国产传媒一区二区三区四区五区 |