我正在尝试从文本文件输入基本文件。我在网上查看了各种帖子,并找到了一些解决方案,但是,他们的解决方案向我发出了不同的警报。我希望我的警报像他们一样在其中包含文件内容,但是我的文件类型重复了。
我不了解JQuery,所以我希望使用javascript中的答案,否则我将难以理解。
function fileSelected(el){
if(el.files && el.files[0]){
var f = el.files[0];
if(f){
var FR = new FileReader();
FR.onload = function(e) {
var contents = e.target.result;
console.log(contents.substr(1, contents.indexOf("n")));
alert( "Got the file.\n"
+"name: " + f.name + "\n"
+"type: " + f.type + "\n"
+"size: " + f.size + " bytes \n"
+ "starts with: " + contents.substr(1, contents.indexOf("n"))
);
};
FR.readAsDataURL( el.files[0]);
}
}
}
<html>
<head>
<title>Import File Attempt</title>
<link rel="stylesheet" type="text/css" href ="style.css">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<input type="file" id="fileChoice" onchange="fileSelected(this)">
</body>
</html>
这是我确实收到的警报: Screenshot of my alert
这是我想要的警报: Alert I wanted
编辑: 可以考虑添加文本文件的屏幕快照,以帮助: My text file
答案 0 :(得分:0)
我不知道我是否很好地理解了这个问题。您要读取文件内容吗? 对于.txt文件:
console.log(contents.substr(23,));
切断:data:text / plain; base64,并将显示以Base64编码的文件的内容
还要检查:
var str = "data:text/plain;base64,VGVzdG93YSB0cmXFm8SHCg==";
console.log (str.replace(/^\S+64,/, ''));
它也适用于txt以外的其他文件 当然,要适应您的需求。
答案 1 :(得分:0)
如果它是 text 文件,建议您使用FileReader.readAsText()
进行阅读:
function loadfile(event){
var fr=new FileReader();
fr.onload=function(){
txt.value=fr.result;
};
fr.readAsText(event.target.files[0]);
}
textarea{
width: 95%;
height: 300px;
}
<input type="file" accept="text" onchange="loadfile(event)"><br>
<textarea id="txt"></textarea>
({name
-type
-size
已经很好用了,所以我把它们排除在外了