日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php文件怎么阅读器,Vue文件阅读器组件FileReader API

發(fā)布時(shí)間:2023/12/19 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php文件怎么阅读器,Vue文件阅读器组件FileReader API 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這次給大家?guī)鞻ue文件閱讀器組件FileReader API,使用Vue文件閱讀器組件FileReader API的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。

有時(shí)候我們需要從文件中讀取數(shù)據(jù)。在以前,你需要將其發(fā)送到服務(wù)器,然后返回所需的數(shù)據(jù)。問題是,現(xiàn)在我們還可以使用 FileReader API 直接訪問瀏覽器中的文件。

如果我們只是想讀取一個(gè)文本文件,以便在UI級(jí)別上做一些無關(guān)緊要的事情,那么就不需要將文件發(fā)送到服務(wù)器。下面的示例將實(shí)現(xiàn)從一個(gè)文件中讀取相關(guān)的數(shù)據(jù)填充到一個(gè) textarea 中。

FileReader API

FileReader API提供了一個(gè)很好的接口,可以使用文本或Blob對(duì)象類型以不同的方式讀取數(shù)據(jù)。

FileReader 實(shí)例有一個(gè) readAsText 方法,我們可以使用它來讀取文件作為文本:const reader = new FileReader();

reader.readAsText(file);

由于FileReader API是異步的,因此它公開了一些我們可以用來獲得它的狀態(tài)的事件。特別是,當(dāng)讀取文件時(shí),我們需要 onload 事件來訪問數(shù)據(jù):const reader = new FileReader();

reader.onload = e => console.log(e.target.result);

reader.readAsText(file);

正如你所看到的,文本數(shù)據(jù)可以通過 e.target.result 來訪問。

到目前為止,瀏覽器對(duì)其支持情況如下:

文件閱讀器組件

前面的代碼已經(jīng)讀取了一個(gè)文件,但是我們?nèi)匀灰o它一個(gè) file 對(duì)象。為此,我們必需使用 的HTML標(biāo)記,這將觸發(fā)一個(gè) change 事件,然后通過 e.target.files 訪問該文件。

讓我們創(chuàng)建一個(gè) FileReader 組件,將其組合在一起:

Vue.component('file-reader',{

template: '#fileReader',

methods: {

loadTextFromFile: function (e) {

const file = e.target.files[0]

const reader = new FileReader()

reader.onload = e => this.$emit('load', e.target.result)

reader.readAsText(file)

}

}

})

組件監(jiān)聽 load 事件,以便父組件能夠處理數(shù)據(jù)。

使用組件

把新創(chuàng)建的 file-reader 組件掛載到 #app 的 p 元素下,來演示我們的組件:

let app = new Vue({

el: '#app',

data () {

return {

text: ''

}

}

})

我們需要在 data 中添加一個(gè) text 屬性,并使用 v-model 將其綁定到textarea上。最后,我們將捕獲 @load 事件,并通過 $event 將 text 屬性設(shè)置為有效的加載事件。

這個(gè)時(shí)候你看到的效果如下:

其實(shí)到現(xiàn)在,功能已經(jīng)有了,在你的瀏覽器像下圖這樣操作,你就可以看到效果了:

特別提醒:我嘗試了幾種文件格式,對(duì)于圖片、PDF等文件格式加載會(huì)亂碼,但加載 .md 或者 .doc 之類的文件,對(duì)應(yīng)的內(nèi)容能正常的顯示在 textarea 中。

添加樣式

如果你閱讀到這里的話,你應(yīng)該看到了效果。長得很丑(事實(shí)上沒有任何的樣式效果)。接下來添加一些樣式,讓其看起來好看一些。

在每個(gè)瀏覽器中, 的渲染效果是不一樣的。如果我們想要一個(gè)相同的渲染效果,就需要有一個(gè)自定義的樣式。那么可以將 input 隱藏,并使用 替代他。

要隱藏 input ,可以使用 opacity:0 或使用 display:block , visibility:hidden 讓其具有可訪問性。我們還需要使用 position 和 z-index 兩屬性,以便把它放在 label 后面:

Read File

.file-reader {

position: relative;

overflow: hidden;

display: inline-block;

border: 2px solid black;

border-radius: 5px;

padding: 8px 12px;

cursor: pointer;

input {

position: absolute;

top: 0;

left: 0;

z-index: -1;

opacity: 0;

}

}

當(dāng)然,為了好看一些,你還可以給其他元素添加一些樣式。最終你看到的效果如下:

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

總結(jié)

以上是生活随笔為你收集整理的php文件怎么阅读器,Vue文件阅读器组件FileReader API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。