Javascript 如何仅发送文本文件中的文本
我需要做的是:Javascript 如何仅发送文本文件中的文本,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我需要做的是: 让用户从光盘中选择txt文件 从中获取文本,比如一个变量 通过AJAX发送它(变量值) 对于第一点,我想知道我是否应该使用普通输入类型(例如,如果我想通过POST发送文件) 对于第二点,我需要知道如何获得用户选择的文件名,然后从中读取文本。另外,我不擅长javascript,所以我真的不知道字符串可以有多长(文件平均大约有15k行) 对于第三种情况,我不需要知道是否可以将数据存储在变量或数组中 提前谢谢 另外,我想javascript不是一种快速的语言,但是(取决于编辑器),
- 让用户从光盘中选择txt文件
- 从中获取文本,比如一个变量
- 通过AJAX发送它(变量值)
对于第二点,我需要知道如何获得用户选择的文件名,然后从中读取文本。另外,我不擅长javascript,所以我真的不知道字符串可以有多长(文件平均大约有15k行)
对于第三种情况,我不需要知道是否可以将数据存储在变量或数组中
提前谢谢
另外,我想javascript不是一种快速的语言,但是(取决于编辑器),它有时会在我的计算机上打开,就像我在前5或6行中拥有所有需要的数据一样。是否可以只读取文件的前几行 > P>可以使用文件API作为@ DANDAVIS和其他评论员提到(并且链接),但是对于该解决方案有一些事情要考虑。底线是文件API目前是w3c的一部分。底线是,即使是w3c推荐的东西,也并非所有浏览器都完全支持 什么样的解决方案对您来说是“最佳”的,归根结底就是您希望支持什么浏览器/版本。如果它是我自己的个人项目,或者是一个“现代”网站/观众,我会使用文件API。但是,如果这是为了需要最大限度的浏览器支持(对于较旧的浏览器),我目前不建议使用文件API 说到这里,这里有一个建议的解决方案,它不涉及使用文件API
- 在表单中提供输入类型文件,供用户指定文件。用户必须选择文件(javascript不能这样做)
- 使用
或设置form.submit()
属性来提交表单。没有刷新页面就可以提交表单target
- 使用选择的服务器端语言响应文件信息(名称、内容等)。例如,在php中,您可以使用
$\u文件访问发布的文件
- 然后可以使用javascript解析响应。通常,您会将其作为json编码的响应发送。然后,您可以使用javascript中的文件信息执行任何操作李>
<input type="file" id="in-file" />
IE不支持FileReader对象。我认为您的第一点不是100%正确。()我必须访问javascript中的文件才能通过$.post发送,不是吗?有趣的是,你说你必须使用ajax,但JS无法将文件内容作为字符串传递给ajax…html5规范可以访问它,是的。但是,用户必须指定一个文件,js不能在没有用户交互的情况下在用户的计算机上查找文件。第二,在html5规范之外,js无权访问文件内容。@Fiodor根据浏览器支持的需要,即使使用ajax(使用文件api),也可以在不刷新页面的情况下提交文件。还有一个
iframe
技巧可以提供更多的浏览器支持。更多细节。哪种解决方案(包括文件api解决方案)对您来说是“最佳”的,这取决于您希望支持的浏览器/版本。HTML5 Rocks提供了一个关于从磁盘读取文件的教程()。re:ps:当然,只需将“file.slice(0,1024)”调用传递给FileReader(),而不只是“file”要获取文件的第一个KB,而不将整个内容读入RAM。另外,file.name,从您提供给FileReader()的同一个文件中,具有文件名。。。
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]);
});