ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript はどのようにしてさまざまなブラウザーでローカル ファイルの内容を読み取ることができますか?

JavaScript はどのようにしてさまざまなブラウザーでローカル ファイルの内容を読み取ることができますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 22:32:15932ブラウズ

How Can JavaScript Read Local File Contents in Different Browsers?

さまざまなブラウザの JavaScript でクライアント側のファイル コンテンツを読み取る

ブラウザを使用してクライアント マシンからファイル コンテンツを読み取ろうとする場合、スクリプトのみこのソリューションは、Firefox および Internet Explorer 用に開発されました。このソリューションは、Firefox の File API と Internet Explorer の ActiveXObject を利用します。

Firefox のファイル API

function getFileContents() {
    var fileForUpload = document.forms[0].fileForUpload;
    var fileName = fileForUpload.value;

    if (fileForUpload.files) {
        var fileContents = fileForUpload.files.item(0).getAsBinary();
        document.forms[0].fileContents.innerHTML = fileContents;
    }
}

Internet Explorer の ActiveXObject

function ieReadFile(filename) 
{
    try
    {
        var fso  = new ActiveXObject("Scripting.FileSystemObject"); 
        var fh = fso.OpenTextFile(filename, 1); 
        var contents = fh.ReadAll(); 
        fh.Close();
        return contents;
    }
    catch (Exception)
    {
        return "Cannot open file :(";
    }
}

クロスブラウザサポート

ただし、Safari や Chrome などの他のブラウザで上記の方法を使用してこのタスクを実行する方法は知られていません。これらのブラウザに実装されているファイル API は、ファイル名とファイル サイズへのアクセスのみを提供し、コンテンツを読み取る機能はありません。

ファイル API アップデート

ファイルAPI はその後標準化され、IE 10 以降を含むほとんどの最新ブラウザに実装されました。この API は、非同期ファイルの読み取り、バイナリ ファイルの処理、およびテキスト エンコーディングのデコードをサポートしています。

var file = document.getElementById("fileForUpload").files[0];
if (file) {
    var reader = new FileReader();
    reader.readAsText(file, "UTF-8");
    reader.onload = function (evt) {
        document.getElementById("fileContents").innerHTML = evt.target.result;
    }
    reader.onerror = function (evt) {
        document.getElementById("fileContents").innerHTML = "error reading file";
    }
}

WebKit および HTML 5 提案

または、必要に応じて、送信することもできます。パッチを適用するか、HTML 5 に組み込むための Mozilla API を提案して、ブラウザ間の互換性の可能性を高めます。将来的には。

以上がJavaScript はどのようにしてさまざまなブラウザーでローカル ファイルの内容を読み取ることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。