在javascript中替换XMLHttpRequest
我以前使用XMLHttpRequest读取本地文件在javascript中替换XMLHttpRequest,javascript,ajax,web,browser,Javascript,Ajax,Web,Browser,我以前使用XMLHttpRequest读取本地文件 function getData(fileName) { var filePath = fileName; xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", filePath, false); xmlhttp.send(null); var fileContent = xmlhttp.responseText; var tempArr = csv2Arr(fileCo
function getData(fileName)
{
var filePath = fileName;
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", filePath, false);
xmlhttp.send(null);
var fileContent = xmlhttp.responseText;
var tempArr = csv2Arr(fileContent);
var returnLabelArr = tempArr[0].toString().split(',');
tempArr.shift();
var returnDataArr = tempArr;
return { 'dataArr' : returnDataArr, 'labelArr' : returnLabelArr };
}
文件名以“C://…”开头,我的程序在地址为“”的浏览器上运行file:///...“
但是,如果没有“--allowfileaccessfromfiles”标记,我的代码在Chrome上就无法工作。而且如果不改变一些安全选项,它在IE和Firefox上也不起作用。
所以,我尝试像这样jquery API
function getData(fileName)
{
var filePath = fileName;
var fileContent;
$.ajax({
type: "GET",
url: filePath
})
.done(function(data) {
alert(data);
fileContent = data;
});
var tempArr = csv2Arr(fileContent);
var returnLabelArr = tempArr[0].toString().split(',');
tempArr.shift();
var returnDataArr = tempArr;
return { 'dataArr' : returnDataArr, 'labelArr' : returnLabelArr };
}
问题也出现了。我认为它阻止了它
谁能给我一些建议,让我在不改变安全选项的情况下访问本地文件?我应该使用一些插件来解决这个问题吗
请让我知道。
谢谢。如果您可以使用
选择文件,那么解决方案是:
HTML:
JS:
var fileInput=document.querySelector('#file input');
fileInput.addEventListener('change',函数(事件){
var files=fileInput.files;
如果(files.lenght==0){
回来
}
对于(var i=0;i
此外,还可以通过查找来了解如何使用它,因为它有更多的方法来读取数据。我无法使用。有没有其他方法可以解决这个问题?
<form action="">
<input type="file" id="file-input" multiple="multiple" accept="image/jpeg" />
</form>
var fileInput = document.querySelector('#file-input');
fileInput.addEventListener('change', function(event) {
var files = fileInput.files;
if (files.lenght == 0) {
return;
}
for(var i = 0; i < files.length; i++) {
readFile(files[i]);
}
fileInput.value = "";
}, false);
var readFile= function(file) {
var reader = new FileReader();
reader.onload = function(e) {
var dataUrl = e.target.result;
// now, load the data into some element
// if this is image, you can do this:
var image = new Image();
image.src = dataUrl;
document.body.appendChild(image);
};
reader.readAsDataURL(file);
};