24

HTML5ファイルAPIを介してファイルを読み取る次のコードがあります。input=file 要素を介してファイルをアップロードしました。以下はコードブロックです。

<input type="file" id="files" name="file" />
<button id="readFile">Read File</button>
<output id="content"></output>

<script>

function readFile() 
{
    /* Get the reference of the inpout element. */
    var files = document.getElementById('files').files;
    console.log(files);

    if (!files.length) 
    {
      alert('Please select a file!');
      return;
    }

    /* Reading the first file selected. You can process other files similarly in loop. */
    var file = files[0];

    /* Instantiate the File Reader object. */
    var reader = new FileReader();

    /* onLoad event is fired when the load completes. */
    reader.onload = function(event) {
        document.getElementById('content').textContent = event.target.result;      
    };

    /* The readAsText method will read the file's data as a text string. By default the string is decoded as 'UTF-8'. */
    reader.readAsText(file);
}

document.getElementById('readFile').addEventListener('click', function(event) {
     readFile();
  }, false);

</script>

ファイルをアップロードせず、input=type 要素を介してファイルパスを HTML5: File API に提供し、ファイルを読み取って表示したくない場合はどうすればよいですか?

HTML5: File API が直接のファイル パスを取らないことは知っています。解決策はありますか?

4

2 に答える 2

27

セキュリティ上の理由から、ブラウザは絶対パスとファイル システムへの直接の Javascript へのアクセスを許可していません。JavaScript で「val()」関数を呼び出すことによってのみ、ファイル名を取得できます。

時間を無駄にしないでください。

于 2013-11-23T22:44:42.670 に答える
0

IE の最新バージョンは、テキスト ボックスにファイルの完全な絶対パスを返します。以下を使用することもできます: var filePath = document.getElementById("myFile").value; 絶対パスを取得するには

PSはIE 11でのみ試しました

于 2015-02-09T05:07:04.183 に答える