我需要做的是:
让用户从他的光盘中选择txt文件
从中获取文字,让我们说一个变量
通过AJAX发送(变量值)
关于第一点我想知道我是否应该使用普通输入类型(比如我想通过POST发送文件)<input type="file">
对于第二点,我需要知道如何获取所选文件的名称,然后从中读取文本。另外我对javascript不太好,所以我真的不知道字符串可以存在多长时间(文件平均有大约15k行)
对于第三个,我不需要知道我是否可以将数据存储在变量或数组中。
提前致谢。
P.S。我猜javascript不是一种快速的语言,但是(取决于编辑器)它有时会在我的计算机上打开,就像我在前5或6行中拥有所有需要的数据一样。是否可以只从文件中读取前几行?
答案 0 :(得分:0)
使用文件API可以像@dandavis和其他评论员提到的那样(并链接)获得你想要的东西,但是有一些事情需要考虑,即browser support。底线是File API目前是w3c的working draft。并且底线甚至是w3c 推荐并非所有浏览器都完全支持这些内容。
对您而言,“最佳”解决方案实际上归结为您希望支持的浏览器/版本。如果它是我自己的个人项目或“现代”网站/受众,我会使用File API。但如果这是针对需要最大浏览器支持的内容(对于旧浏览器),我目前不推荐使用File API。
所以说了这一切,这里是一个不涉及使用FIle API的建议解决方案。
form.submit()
或设置target
属性以提交表单。有一个iframe trick用于提交表单而不刷新页面。$_FILES
答案 1 :(得分:0)
使用Chrome和Firefox,您可以阅读文本文件的内容,如下所示:
HTML:
<input type="file" id="in-file" />
JavaScript with jQuery:
var fileInput = $('#in-file');
fileInput.change(function(e) {
var reader = new FileReader();
reader.onload = function(e) {
console.log(reader.result);
}
reader.readAsText(fileInput[0].files[0]);
});
IE不支持FileReader对象。