我有以下代码:
function FileHandler() {
}
FileHandler.prototype.open = function(file) {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
};
当我尝试在控制台中运行它时,我可以将本地文件作为参数传递给文件吗?如果我想这样做,我会使用什么语法?
答案 0 :(得分:0)
您可以使用异步功能。
FileHandler.prototype.open = function(file, callback) {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function() {
if (rawFile.readyState == 4) {
// The request is done; did it work?
if (rawFile.status == 200) {
// ***Yes, use `rawFile.responseText` here***
callback(rawFile.responseText);
} else {
// ***No, tell the callback the call failed***
callback(null);
}
};
rawFile.open("GET", file, false);
rawFile.send();
};
答案 1 :(得分:0)
http://www.creativebloq.com/web-design/read-local-files-file-api-121518548
它显示了你如何做到这一点:
FileReader对象允许我们一次读取文件的内容 我们有一个来自用户的文件。为了安全起见,用户必须主动 给我们文件的引用,以使其可读。 有许多FileReader方法可以获取文件 内容
以下是如何使用它的示例:(来自网站的代码)
var reader = new FileReader();
//create our FileReader object to read the file
reader.addEventListener("load", fileRead, false);
//add an event listener for the onloaded event
function fileRead(event){
//called when the load event fires on the FileReader
var pictureURL = event.target.result;
//the target of the event is the FileReader object instance
//the result property of the FileReader contains the file contents
}
reader.readAsDataURL(file);
//when the file is loaded, fileRead will be called