首頁 web前端 js教程 在js中如何讀取本機文件

在js中如何讀取本機文件

Jun 19, 2018 am 10:19 AM
js 讀取

下面我就為大家分享一篇js讀取本地檔案的實例,具有很好的參考價值,希望對大家有幫助。

如何用在瀏覽器端預覽本機檔案?

今天的主題是使用瀏覽器預覽本機檔案。

由於瀏覽器安全策略的限制,javascript程式不能自由地存取本地資源,這是對使用者資訊安全來說,是一項不得不遵守的準則。假如網路上的javascript程式可以自如地存取用戶主機的本機資源,那麼瀏覽器用戶將毫無安全可言。儘管有這個安全限制,但是在得到使用者允許的情況下,瀏覽器還是可以存取本地資源的。

獲得使用者允許的方法就是透過標籤來讓使用者手動選擇文件,這個過程就是使用者授予存取權限的過程。然後 使用取得File 物件透過URL.createObjectURL(file)轉換為檔案url, 就可以傳遞給類似y於img,video,audio等標籤使用了。我將本機檔案轉換為url 的功能封裝成了一個類別。

function LocalFileUrl(){
 var _this = this;
 this.input_id = 'input_getLocalFile'+ Math.round(Math.random() * 1000);
 $("body").append("<input type=&#39;file&#39; style=&#39;display:none&#39; id=&#39;"+this.input_id+"&#39; multiple>");
 this.urls=[];
 var _this = this;
 $("#" + this.input_id).change(function(e){
  console.log("change");
  //如果_this.urls 不为空,则释放url
  if(_this.urls){
   _this.urls.forEach(function(url,index,array){
    URL.revokeObjectURL(url.url);//一经释放,马上将无法使用这个url的资源
   });
   _this.urls = [];
  }
  $(this.files).each(function(index,file){
   var url = URL.createObjectURL(file);
   _this.urls.push({url:url,file:file});
  });
  typeof _this.getted == &#39;function&#39; && _this.getted(_this.urls);
 })
}
/*
参数说明:getted:function(urls){}
urls是一个url对象数组。[url]
url = {
url:url, //选取的文件url
file:file //选取的文件对象引用
}
*/
LocalFileUrl.prototype.getUrl = function(getted){
 this.getted = getted;
 $("#"+ this.input_id).click();
}
登入後複製

使用方法:

var localFileUrl = new LocalFileUrl();//实例化对象
//触发读取,弹出文件选择框,并且监听文件选择事件。  
localFileUrl.getUrl(function(urls){
 urls.forEach(function(item,index,array){
  $("body").append("<p>"+index+"----"+item.url+"</p>")
 })
})
登入後複製

#使用jQuery 的promise物件改寫

這種方式的好處是可以使用鍊式寫法,並且可以綁定多個done事件處理函數,執行順序按照綁定順序。

function LocalFileUrl(){
 this.dtd ={};
 this.input_id = &#39;input_getLocalFile&#39;+ Math.round(Math.random() * 1000);
 $("body").append("<input type=&#39;file&#39; style=&#39;display:none&#39; id=&#39;"+this.input_id+"&#39; multiple>");
 this.urls=[];
 var _this = this;
 $("#" + this.input_id).change(function(e){
  //如果_this.urls 不为空,则释放url
  if(_this.urls){
   _this.urls.forEach(function(url,index,array){
    URL.revokeObjectURL(url.url);//一经释放,马上将无法使用这个url的资源
   });
   _this.urls = [];
  }
  $(this.files).each(function(index,file){
   var url = URL.createObjectURL(file);
   _this.urls.push({url:url,file:file});
  });
  //传入一个可选的参数数组
  _this.dtd.resolveWith(window,new Array(_this.urls));
 })
}
/*
返回一个jquery 的promise 对象,可以绑定done()事件。done(urls)接收一个urls数组
{
 url:url,
 file:file// 选取的文件对象
}
*/
LocalFileUrl.prototype.getUrl = function(){
 this.dtd = $.Deferred();
 $("#"+ this.input_id).click();
 return this.dtd.promise();
}
登入後複製

使用方式

var localFilrUrl = new LocalFileUrl();
// 绑定done事件
localFileUrl.getUrl().done(function(urls){
 urls.forEach(function(item,index,array){
  $("body").append("<p>"+index+"----"+item.url+"</p>")
 })
}).done(function(){
 console.log("完成");
}).done(function(){
 alert("已经读取了本地文件路径");
})
登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

Web表單的JS外掛程式(精品推薦)

在jQuery如何實作線上客服功能

在jQuery中圖片檢視外掛如何使用

#

以上是在js中如何讀取本機文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用pandas正確讀取txt文件 如何使用pandas正確讀取txt文件 Jan 19, 2024 am 08:39 AM

如何使用pandas正確讀取txt文件,需要具體程式碼範例Pandas是一個廣泛使用的Python資料分析函式庫,它可以用來處理各種各樣的資料類型,包括CSV檔案、Excel檔案、SQL資料庫等。同時,它也可以用於讀取文字文件,例如txt文件。但是,在讀取txt檔案時,我們有時會遇到一些問題,例如編碼問題、分隔符號問題等。本文將介紹如何使用pandas正確讀取txt

建議:優秀JS開源人臉偵測辨識項目 建議:優秀JS開源人臉偵測辨識項目 Apr 03, 2024 am 11:55 AM

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟 股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟 Dec 17, 2023 pm 06:55 PM

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

使用pandas讀取txt檔案的實用技巧 使用pandas讀取txt檔案的實用技巧 Jan 19, 2024 am 09:49 AM

使用pandas讀取txt檔案的實用技巧,需要具體程式碼範例在資料分析和資料處理中,txt檔案是一種常見的資料格式。使用pandas讀取txt檔案可以快速、方便地進行資料處理。本文將介紹幾種實用的技巧,以幫助你更好的使用pandas讀取txt文件,並配以具體的程式碼範例。讀取帶有分隔符號的txt檔案使用pandas讀取帶有分隔符號的txt檔案時,可以使用read_c

如何使用PHP和JS創建股票蠟燭圖 如何使用PHP和JS創建股票蠟燭圖 Dec 17, 2023 am 08:08 AM

如何使用PHP和JS創建股票蠟燭圖股票蠟燭圖是股票市場中常見的技術分析圖形,透過繪製股票的開盤價、收盤價、最高價和最低價等數據,幫助投資者更直觀地了解股票的價格波動情形。本文將教你如何使用PHP和JS創建股票蠟燭圖,並附上具體的程式碼範例。一、準備工作在開始之前,我們需要準備以下環境:1.一台運行PHP的伺服器2.一個支援HTML5和Canvas的瀏覽器3

Java 中使用 OpenCSV 讀取和寫入 CSV 檔案的範例 Java 中使用 OpenCSV 讀取和寫入 CSV 檔案的範例 Dec 20, 2023 pm 01:39 PM

Java中使用OpenCSV讀取和寫入CSV檔案的範例CSV(Comma-SeparatedValues)指的是以逗號分隔的數值,是一種常見的資料儲存格式。在Java中,OpenCSV是一個常用的工具庫,用於讀取和寫入CSV檔案。本文將介紹如何使用OpenCSV來實作讀取和寫入CSV檔案的範例。引進OpenCSV庫首先,需要引進OpenCSV庫到

Pandas讀取網頁資料的實用方法 Pandas讀取網頁資料的實用方法 Jan 04, 2024 am 11:35 AM

Pandas讀取網頁資料的實用方法,需要具體程式碼範例在資料分析和處理過程中,我們經常需要從網頁中取得資料。而Pandas作為一種強大的資料處理工具,提供了方便的方法來讀取和處理網頁資料。本文將介紹幾種常用的Pandas讀取網頁資料的實用方法,並附上特定的程式碼範例。方法一:使用read_html()函數Pandas的read_html()函數可以直接從網頁讀

Pandas使用教學:讀取JSON檔案的快速入門 Pandas使用教學:讀取JSON檔案的快速入門 Jan 13, 2024 am 10:15 AM

快速入門:Pandas讀取JSON檔案的方法,需要具體程式碼範例引言:在資料分析和資料科學領域,Pandas是一個重要的Python庫之一。它提供了豐富的功能和靈活的資料結構,能夠方便地對各種資料進行處理和分析。在實際應用中,我們經常會遇到需要讀取JSON檔案的情況。本文將介紹如何使用Pandas來讀取JSON文件,並附上特定的程式碼範例。一、Pandas的安裝

See all articles