JS はファイルを読み取る FileReaderFileReader オブジェクトを使用すると、Web アプリケーションは、File または Blob オブジェクトを使用して読み取るファイルまたはデータを指定し、ユーザーのコンピューターに保存されているファイル (または生データ バッファー) の内容を非同期的に読み取ることができます。 書類ファイルリーダー イベントとメソッドイベント処理
標準的な方法
読み取り操作を中止します。返されると、readyState プロパティは DONE になります。
指定された Blob の内容の読み取りを開始します。完了すると、結果プロパティには読み取られたファイルの ArrayBuffer データ オブジェクトが含まれます。
指定された Blob の内容の読み取りを開始します。完了すると、結果プロパティには、読み取られたファイルの内容を表す data: URL 形式の文字列が含まれます。
指定された Blob の内容の読み取りを開始します。完了すると、結果プロパティには読み取られたファイルの内容を表す文字列が含まれます。 基本的な使い方ファイルの準備: read.txt (コンピューター上の任意のファイルを読み取ることができます) HTML構造 <input type="file" 複数> JSコール <スクリプト> window.onload = 関数(){ var inpFile = document.querySelector('input[type=file]') inpFile.addEventListener('change', 関数(){ var リーダー = 新しい FileReader() // 非同期リクエストを送信します // 0. readAsText メソッドを使用します (結果を通常のテキストとして読み取ります) リーダー.readAsText(this.files[0]) // 読み取り成功の結果: ファイルが正常に読み取られました (コンピューター上のファイル read.txt) reader.onload = 関数(){ // 読み取り後、データはオブジェクトの result プロパティに保存されます console.log(this.result)// 出力: ファイルは正常に読み取られました } }) } </スクリプト> JS 呼び出しは他のメソッドを使用します (他のメソッドも同様に使用されます) データとして読み込むURL window.onload = 関数(){ var inpFile = document.querySelector('input[type=file]') inpFile.addEventListener('change', 関数(){ var リーダー = 新しい FileReader() // readAsDataURL を使用します (base64 エンコードを取得するため) リーダー.readAsDataURL(this.files[0]) reader.onload = 関数(){ コンソールログ(この結果) //データ:text/plain;base64,5bey57uP5oiQ5Yqf6K+75Y+W5paH5Lu2 } }) } イベント処理JS 呼び出し (上記の HTML とファイルをそのまま使用するか、より大きなファイルを用意すると、効果が向上します) window.onload = 関数(){ var inpFile = document.querySelector('input[type=file]') inpFile.addEventListener('change', 関数(){ var リーダー = 新しい FileReader() リーダー.readAsText(this.files[0]) var カウント = 0; reader.onloadstart = 関数(){ console.log("onloadstart 状態"+this.readyState) console.log("読み込みを開始します") } reader.onloadend = 関数(){ console.log("onloadend 状態"+this.readyState) console.log("読み込みが完了しました") } reader.onprogress = 関数(){ カウント++; console.log("onprogress 状態"+this.readyState) console.log("読み込み中"+カウント) } reader.onload = 関数(){ console.log("onload によって取得されたデータは "+this.result) です) console.log("ステータス"+this.readyState) } reader.onerror = 関数(){ console.log('問題が発生しました') } reader.onerror = 関数(){ console.log('中止イベントを処理します。このイベントは、読み取り操作が中断されたときにトリガーされます。') } }) } 結果は以下のとおりです 重要な結果分析:
ノード操作ファイル (readfile)上記を踏まえると、ブラウザの JavaScript にはファイルを操作する機能がありません (セキュリティ上、ローカルファイルを直接操作することはできません) が、Node の JavaScript にはファイルを操作する機能があることがわかります。 ノードはどうやってファイルを読み取りますか? (ノードをインストールするときはコードは無視できます)
// 1. require メソッドを使用して fs コアモジュールをロードします var fs = require('fs') // 2. ファイルの読み取り // 最初のパラメータは読み取り対象のファイル パスです // 2 番目のパラメータはコールバック関数です // 成功 // データ データ // エラー null // 失敗 // データが未定義、データなし // エラー エラー オブジェクト fs.readFile('read.txt', function (error, data) { // ここでエラーが発生したかどうかをチェックするには、エラーを判断します if (error) { console.log('ファイルの読み取りに失敗しました') } それ以外 { コンソールログ(data.toString()) } }) 結果 ファイルの読み取りは非同期操作です複数のファイルを読み取る場合、readfile を使用してファイルを読み取ると、必ずしも結果が順番に印刷されるわけではないため、これは非同期操作です。ファイルを順番に読み取る方法。 Promiseの使用var fs = require('fs') 関数 pReadFile(ファイルパス) { 新しいPromise(function(resolve,reject))を返す{ fs.readFile(filePath, 'utf8', 関数(err, データ) { もし(エラー){ 拒否(エラー) } それ以外 { 解決(データ) } }) }) } pReadFile('./data/a.txt') .then(関数 (データ) { コンソール.log(データ) pReadFile('./data/b.txt') を返します }) .then(関数 (データ) { コンソール.log(データ) pReadFile('./data/c.txt') を返します }) .then(関数 (データ) { コンソール.log(データ) }) ファイルの書き込みfs.writeFile('read.txt', 'みなさんこんにちは。自己紹介させてください。私はファイルライターです。', function (error) { if (エラー) { console.log('書き込みに失敗しました') } それ以外 { console.log('書き込みに成功しました') } }) 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
この記事の例では、Vue がデジタル 3 桁区切り形式をグローバルに実装するための具体的なコードを参...
目次質問再生暗黙的な変換要約する参照する質問仕事中、1 つの SQL クエリ ステートメントのみを実...
MySQL における Regexp の一般的な使用法特定の文字列を含むあいまい一致# コンテンツフィ...
目次1. NodeがHTTPサーバーを構築する2. HTTPサーバーがリクエストを取得する1. Po...
html4:コードをコピーコードは次のとおりです。 <フォーム> <p>&l...
多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...
目次1. スローログの紹介2. スローログの練習1. スローログの紹介スロー ログの正式名称はスロー...
序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...
SRIOVの導入、VFパススルー構成、パケット転送速度性能テスト目次1. SRIOVの紹介2. 環境...
元データと対象データSQL文を実装する(最大) 選択 店、 月、 最大(dz,fz,sp) が最大値...
CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...
この記事では、例を使用して、MySQL を使用して正規表現に基づくあいまい文字列置換を実装する方法を...
この記事では、例を使用して、MySQL の継続的な集計の原理と使用方法を説明します。ご参考までに、詳...
水平方向では、セルの配置を左、中央、右に設定できます。基本的な構文<TD ALIGN=&quo...
私が書いた内容が理解できない場合は、インターネット上に理解できるチュートリアルがない可能性があります...