我暂时没有使用JavaScript,我似乎无法读取文本文件并显示内容。
我已尝试onload
以及onloadend
。如果我只是将reader.onload = alert('Hello');
警报激起,但我无法使用该函数。
不确定从何处开始。我尝试在reader.onload = function(evt)...
之后定义函数,但这不起作用。
我也在Safari 6.0.5和Chrome中尝试过。
<!DOCTYPE HTML>
<html>
<head>
<title>Pi to Colors</title>
</head>
<body>
<script>
function readFile() {
var reader = new FileReader();
reader.onload = readSuccess;
function readSuccess(evt) {
var field = document.getElementById('main');
field.innerHTML = evt.target.result;
};
reader.readAsText("/pi.txt");
}
</script>
<div id="main">
</div>
</body>
</html>
答案 0 :(得分:19)
出于安全原因,您无法获取此类本地文件。
另一个潜在问题是readAsText(和所有读取函数)需要文件的内容而不是文件路径/名称。您可以从input type =“file”元素的files集合中获取它。以下是您的代码的工作方式:
function readFile(file) {
var reader = new FileReader();
reader.onload = readSuccess;
function readSuccess(evt) {
var field = document.getElementById('main');
field.innerHTML = evt.target.result;
};
reader.readAsText(file);
}
document.getElementById('selectedFile').onchange = function(e) {
readFile(e.srcElement.files[0]);
};
这是jsfiddle: http://jsfiddle.net/fstreamz/ngXBV/1/
注意:此代码在Safari浏览器中不起作用
答案 1 :(得分:1)
您可以使用ajax获取文件内容:
var reader= new XMLHttpRequest();
reader.open('GET', '/pi.txt');
reader.onreadystatechange =readSuccess();
function readSuccess(evt) {
var field = document.getElementById('main');
field.innerHTML = reader.responseText;
};
reader.send();
答案 2 :(得分:0)
我有同样的问题,我找到了解决方案。除非用户有权限,否则您无法读取本地文件。您可以在页面上放置<input type="file">
。当文件输入改变时,您可以读取数据。
答案 3 :(得分:-1)
对我来说没有任何作用。下面你可以找到我丑陋的解决方案,但它是唯一一个完成这项工作的人。在我的情况下,用户最多可以上传3个文件,因此var iPDF可以是0,1,2。
var iPDF=UpdatedExistingNumberOfPDFfiles;
if (iPDF < NoMaxPDFfiles) {
var reader = new FileReader();
reader.readAsDataURL(files[iPDF-UpdatedExistingNumberOfPDFfiles]);
reader.onload = function (){
var PDFdataURL = reader.result;
var xhr = new XMLHttpRequest();
xhr.open("POST", "Observation_PDFUpload.php",true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var NumberOfPDFfile = iPDF+1;
xhr.send("PDFfileURL="+PDFdataURL+"&PDFfileName="+PDFfileName+"-Annex-"+NumberOfPDFfile);
iPDF++;
if (iPDF < NoMaxPDFfiles) {
reader.readAsDataURL(files[iPDF-UpdatedExistingNumberOfPDFfiles]);
reader.onload = function (){
PDFdataURL = reader.result;
var xhr1 = new XMLHttpRequest();
xhr1.open("POST", "Observation_PDFUpload.php",true);
xhr1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
NumberOfPDFfile = iPDF+1;
xhr1.send("PDFfileURL="+PDFdataURL+"&PDFfileName="+PDFfileName+"-Annex-"+NumberOfPDFfile);
iPDF++;
if (iPDF < NoMaxPDFfiles) {
reader.readAsDataURL(files[iPDF-UpdatedExistingNumberOfPDFfiles]);
reader.onload = function (){
PDFdataURL = reader.result;
var xhr2 = new XMLHttpRequest();
xhr2.open("POST", "Observation_PDFUpload.php",true);
xhr2.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
NumberOfPDFfile = iPDF+1;
xhr2.send("PDFfileURL="+PDFdataURL+"&PDFfileName="+PDFfileName+"-Annex-"+NumberOfPDFfile);
}
}
}
}
}
};