根据ebidel的答案,可以使用jDataView读取id3v1标签:
document.querySelector('input[type="file"]').onchange = function (e) {
var reader = new FileReader();
reader.onload = function (e) {
var dv = new jDataView(this.result);
// "TAG" starts at byte -128 from EOF.
// See http://en.wikipedia.org/wiki/ID3
if (dv.getString(3, dv.byteLength - 128) == 'TAG') {
var title = dv.getString(30, dv.tell());
var artist = dv.getString(30, dv.tell());
var album = dv.getString(30, dv.tell());
var year = dv.getString(4, dv.tell());
} else {
// no ID3v1 data found.
}
};
reader.readAsArrayBuffer(this.files[0]);
};
Run Code Online (Sandbox Code Playgroud)
Chrome和其他浏览器现在已经实现了DataView(我只对Chrome感兴趣).我很好奇是否有人知道如何:
到目前为止,我的文件阅读器api代码一直运行良好,直到有一天我从我的一个客户端获得了一个280MB的txt文件.页面只是在Chrome中直接崩溃,在Firefox中没有任何反应.
// create new reader object
var fileReader = new FileReader();
// read the file as text
fileReader.readAsText( $files[i] );
fileReader.onload = function(e)
{ // read all the information about the file
// do sanity checks here etc...
$timeout( function()
{
// var fileContent = e.target.result;
// get the first line
var firstLine = e.target.result.slice(0, e.target.result.indexOf("\n") ); }}
Run Code Online (Sandbox Code Playgroud)
我上面要做的是获取第一个换行符,以便我可以获得文件的列长度.我不应该把它看作文字吗?如何在不破坏大文件页面的情况下获取文件的列长度?
我使用JS FileReader.我希望在文件读取操作后获得结果并使用此数据.FileReader是异步的,我不知道结果何时准备就绪.如何正确完成?
$(document).ready(function(){
$('#file_input').on('change', function(e){
var res = readFile(this.files[0]);
//my some manipulate with res
$('#output_field').text(res);
});
});
function readFile(file){
var reader = new FileReader(),
result = 'empty';
reader.onload = function(e)
{
result = e.target.result;
};
reader.readAsText(file);
//waiting until result is empty?
return result;
}
Run Code Online (Sandbox Code Playgroud)
它显示"空".
如何等到"结果"为空?其他方式?
我在JAR文件中有一个文件.1.txt例如,这是.
我该如何访问它?我的源代码是:
Double result=0.0;
File file = new File("1.txt")); //how get this file from a jar file
BufferedReader input = new BufferedReader(new FileReader(file));
String line;
while ((line = input.readLine()) != null) {
if(me==Integer.parseInt(line.split(":")[0])){
result= parseDouble(line.split(":")[1]);
}
}
input.close();
return result;
Run Code Online (Sandbox Code Playgroud) 背景:
我想创建一个仅使用JavaScript/HTML的"app",可以直接从文件系统通过浏览器打开.此应用必须能够从其他文件中读取数据.然后我将使用JS来解析它并呈现页面.作为一个简化的例子,假设我有一个CSV文件(在这里下载):
Mark Rodgers,mark.rodgers@company.com,Accounting
[...]
Melissa Jones,melissa@company.com,CEO
Run Code Online (Sandbox Code Playgroud)
我希望能够使用JS读取文件并使用其中的数据来生成我的页面.
到目前为止我所取得的成就:
演示(右键单击 - >"另存为"将HTML保存到您的计算机).它也可以在 jsfiddle中以半破碎的方式使用(布局已经破坏,但它仍然应该在功能上正确).
只需将CSV文本文件拖放到拖放框中,或使用文件菜单选择文本文件,JavaScript将读取,解析文件并填充表格.
这依赖于FileReader API; 大部分繁重的工作都是通过这个功能完成的:
function handleFileSelect(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.target.files || evt.dataTransfer.files; // FileList object.
var file = files[0];
// this creates the FileReader and reads stuff as text
var fr = new FileReader();
fr.onload = parse;
fr.readAsText(file);
// this is the function that actually parses the file
// and populates the table
function parse()
{ …Run Code Online (Sandbox Code Playgroud) 我想从s3获取图像并将其显示在我的HTML页面上.
Angular HTML文件:
<section data-ng-controller="myCtrl">
<img ng-src="{{src}}" width="200px" height="200px">
</section>
Run Code Online (Sandbox Code Playgroud)
角度控制器文件:
angular.module('users').controller('myCtrl', ['$scope',function($scope) {
var s3 = new AWS.S3();
s3.getObject({Bucket: 'mybucket', Key: 'myimage.jpg'},function(err,file){
//code?? to display this image file in the img tag
//$scope.src=file????....obviously it wont work
});
}]);
Run Code Online (Sandbox Code Playgroud)
我找到了一些调用FileReader的东西并尝试了这个:
var reader = new FileReader();
reader.onload = function(event) {
$scope.src = event.target.result;
}
reader.readAsDataURL(file);
Run Code Online (Sandbox Code Playgroud)
但它显示错误:
Uncaught TypeError:无法在'FileReader'上执行'readAsDataURL':参数1不是'Blob'类型.
请帮我在img标签中显示图像文件的代码
我的S3存储桶不公开
编辑:
我对s3不感兴趣.我想知道的是
如何使用HTML图像标签以文件对象(s3 obj)的形式显示您的javascript代码中的图像
我有多个3GB制表符分隔文件.每个文件中有2000万行.所有行必须独立处理,任何两行之间没有关系.我的问题是,什么会更快A.使用逐行阅读
with open() as infile:
for line in infile:
Run Code Online (Sandbox Code Playgroud)
或者B.以块的形式将文件读入内存并进行处理,一次说250 MB?
处理不是很复杂,我只是将column1中的值抓到List1,将column2抓到List2等.可能需要一起添加一些列值.
我在具有30GB内存的Linux机器上使用python 2.7.ASCII文本.
有什么方法可以加速并行?现在我正在使用前一种方法,而且过程非常缓慢.使用任何CSVReader模块都可以提供帮助吗?我不必在python中使用它,任何其他语言或数据库使用的想法都是受欢迎的.谢谢.
有人能给我一个使用FileReader API的例子去获取chrome中文件的内容吗?
它似乎正在回归undefined我.
<!doctype html>
<html>
<script>
function handle_files(files) {
console.log(files)
reader = new FileReader()
ret = []
for (i = 0; i < files.length; i++) {
file = files[i]
console.log(file)
text = reader.readAsText(file) //readAsdataURL
console.log(text) //undefined
ret.push(text)
}
console.log(ret) // [undefined]
}
</script>
<body>
FileReader Test
<input type="file" onchange="handle_files(this.files)">
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我目前正在研究一个显示由C++服务器发送的图像的WebSocket应用程序.我在那里看到了几个主题,但我似乎无法在Firefox中摆脱这个错误:
图像损坏或截断:data:image/png; base64,[some data]
这是我用来显示我的blob的Javascript代码:
socket.onmessage = function(msg) {
var blob = msg.data;
var reader = new FileReader();
reader.onloadend = function() {
var string = reader.result;
var buffer = Base64.encode(string);
var data = "data:image/png;base64,"+buffer;
var image = document.getElementById('image');
image.src = data;
};
reader.readAsBinaryString(blob);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用我在这个主题上找到的红点图片:https://stackoverflow.com/a/4478878/1464608 而Base64类来自这里:https://stackoverflow.com/a/246813/ 1464608
但我获得的base64结果不匹配,Firefox检索到图像被损坏的错误.
我知道这不是很多信息,但我不知道在哪里看:/任何帮助都非常受欢迎!
我试图通过rest API发布上传到HTML文件输入到网页的附件.API文档指出帖子是直接二进制内容作为HTTP请求的主体,而不是表单文件上载.
我的代码如下:
$('#_testButton').bind('click', function () {
var file = document.getElementById('_testFile').files[0]
var reader = new FileReader();
reader.onload = function () {
$.ajax({
url: '/attachmentURL',
type: 'POST',
data: reader.result
})
}
reader.readAsBinaryString(file)
})
Run Code Online (Sandbox Code Playgroud)
我需要这个来处理许多不同的mimeTypes,所以我没有在上面的代码中声明它.但是,我尝试为.doc文件声明contentType:'application/msword',并尝试使用processData:false和contentType:false.
数据将被发布到应有的位置.但是,当我打开文件时,我收到一条消息,上面写着mimeType:带有空文件的application/x-empty或带有一堆二进制字符的文件.我已经尝试过.doc文件和pdf文件,两者的结果是一样的.
有没有人知道我可以改变什么使这项工作?