特定のファイルでのみ機能するように このコード を変更したいのですが、正しいURLパラメーターを理解できず、見つけたすべてのコード例でファイル選択ダイアログを使用しています。
<!DOCTYPE html>
<html>
<head>
<title>reading file</title>
<script type="text/javascript">
var reader = new FileReader();
function readText(that){
if(that.files && that.files[0]){
var reader = new FileReader();
reader.onload = function (e) {
var output=e.target.result;
//process text to show only lines with "@":
output=output.split("\n").filter(/./.test, /\@/).join("\n");
document.getElementById('main').innerHTML= output;
};//end onload()
reader.readAsText(that.files[0]);
}//end if html5 filelist support
}
</script>
</head>
<body>
<input type="file" onchange='readText(this)' />
<div id="main"></div>
</body>
次のコードを変更しても機能しないのはなぜですか。
<body>
<input type="file" onchange='readText(this)' />
<div id="main"></div>
</body>
に:
<body onload="readText('file:///C:/test.txt')">
<div id="main"></div>
</body>
セキュリティ上の制限があるため、ブラウザはそのような機能を提供しません。ユーザーがファイル選択ダイアログで特定のファイルを選択しない(またはドラッグアンドドロップでこれを行わない)まで、ローカルファイルを読み取ることは許可されていません。そのため、すべてのコード例でファイル選択ダイアログを使用しています。