标签: filereader

javascript FileReader - 以块的形式解析长文件

我有很长的文件需要解析.因为它很长,我需要通过块来做大块.我试过这个:

function parseFile(file){
    var chunkSize = 2000;
    var fileSize = (file.size - 1);

    var foo = function(e){
        console.log(e.target.result);
    };

    for(var i =0; i < fileSize; i += chunkSize)
    {
        (function( fil, start ) {
            var reader = new FileReader();
            var blob = fil.slice(start, chunkSize + 1);
            reader.onload = foo;
            reader.readAsText(blob);
        })( file, i );
    }
}
Run Code Online (Sandbox Code Playgroud)

运行后我只看到控制台中的第一个块.如果我将'console.log'更改为jquery附加到某个div,我只看到该div中的第一个块.其他块怎么样?如何使它工作?

javascript html5 parsing filereader

24
推荐指数
5
解决办法
3万
查看次数

Filereader - 再次上传相同的文件无法正常工作

我有点像绘图应用程序.用户可以保存项目然后加载它们.当我第一次加载一个文件(例如project1.leds)在应用程序中进行一些更改但没有保存它然后再次加载相同的文件(project1.leds)没有任何反应.我不能多次加载同一个文件.如果我加载其他文件,它的工作.

码:

$("#menu-open-file").change(function(e){
    var data=[];

    var file = null;
    file = e.target.files[0];
    console.log(file)
    var reader = new FileReader();
        reader.onload = function(e){
            data=JSON.parse(reader.result);
            x=data[0].SIZE[0];
            y=data[0].SIZE[1];
            if(x==15) x=16;
            if(x==30) x=32;
            if(x==60) x=64;
            if(y==15) y=16;
            if(y==30) y=32;
            if(y==60) y=64;
            createLeds(x,y,data,false,false);
            clearActiveTools();
            var svg = $('#contener').find('svg')[0];
                svg.setAttribute('viewBox','0 0 ' + x*20 + ' ' + y*20);
            $("#contener").css("width",x*20).css("height",y*20);
            $("#contener").resizable({
                aspectRatio: x/y,
                minHeight: 200,
                minWidth: 200,
            });
            wiFirst = $("#contener").width();
            hiFirst = $("#contener").height();
        }
        reader.readAsText(file);
});
Run Code Online (Sandbox Code Playgroud)

我可以删除/删除缓存文件吗?它甚至在浏览器中缓存了吗?

javascript jquery file filereader

23
推荐指数
3
解决办法
1万
查看次数

使用javascript的FileReader获取/设置文件编码

我正在努力解决以下问题.使用javascript我想更改文件内容的字符集并将此内容显示给用户.

我有一个输入:文件表单.在改变时我正在阅读内容

$('#form input:file').change(function(event){                   
   file = this.files[0];
   reader = new FileReader();
   reader.onload = function(event) {
      result = event.target.result.replace(/\n/g,'<br />');
      $('#filecontents').html(result);
   });
   reader.readAsText(file);
})
Run Code Online (Sandbox Code Playgroud)

该文件位于Windows-1251中.我想将文件的内容转换为另一种编码,然后将其呈现给用户.

这有可能用javascript实现吗?

问候

javascript encoding character-encoding filereader

22
推荐指数
1
解决办法
3万
查看次数

如何从Javascript FileReader获取文件名?

我正在使用Javascript FileReader在浏览器中加载图像:

e = e.originalEvent;
e.dataTransfer.dropEffect = 'copy';
this.documentFile = e.dataTransfer.files[0];

var reader = new FileReader();
reader.onloadend = function () {
    if (reader.result) {
        console.log(reader);
        $('#theImage').attr('src', reader.result);
    }
};
reader.readAsDataURL(this.documentFile);
Run Code Online (Sandbox Code Playgroud)

这很好用.我现在想获得图像的原始文件名,但我不知道如何在互联网上查找我也找不到任何东西?

有人知道如何通过FileReader获取文件名吗?欢迎所有提示!

javascript io jquery filereader

22
推荐指数
2
解决办法
3万
查看次数

在客户端JavaScript中读取逐行文件

你可以帮我解决以下问题.

目标

在客户端(通过JS和HTML5类在浏览器中)逐行读取文件,而不将整个文件加载到内存中.

脚本

我正在处理网页,它应解析客户端的文件.目前,我正在阅读本文中描述的文件.

HTML:

<input type="file" id="files" name="files[]" />
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$("#files").on('change', function(evt){
    // creating FileReader
    var reader = new FileReader();

    // assigning handler
    reader.onloadend = function(evt) {      
        lines = evt.target.result.split(/\r?\n/);

        lines.forEach(function (line) {
            parseLine(...);
        }); 
    };

    // getting File instance
    var file = evt.target.files[0];

    // start reading
    reader.readAsText(file);
}
Run Code Online (Sandbox Code Playgroud)

问题是FileReader立即读取整个文件,这会导致大文件崩溃的选项卡(大小> = 300 MB).使用reader.onprogress不能解决问题,因为它只会增加结果,直到它达到极限.

发明一个轮子

我已经在互联网上做了一些研究,并没有找到任何简单的方法来做到这一点(有很多文章描述了这个确切的功能,但在服务器端为node.js).

作为解决它的唯一方法,我只看到以下内容:

  1. 按块拆分文件(通过File.split(startByte, endByte)方法)
  2. 在该块中找到最后一个新行字符('/ n')
  3. 读取除最后一个新行字符后的部分以外的那个块,并将其转换为字符串并按行分割
  4. 从第2步中找到的最后一个新行字符开始读取下一个块

但我最好使用现有的东西来避免熵增长.

html javascript html5 client-side filereader

22
推荐指数
2
解决办法
3万
查看次数

通过Eclipse运行时,Java无法找到文件

当我运行应该从Eclipse中的文件读取的Java应用程序时java.io.FileNotFoundException,即使文件位于正确的目录中,我也会得到一个.我可以从命令行编译并运行应用程序就好了; 该问题仅发生在Eclipse中,具有多个项目和应用程序.我是否需要在运行配置或构建路径中更改设置以使其正确查找文件?

java eclipse exception file filereader

21
推荐指数
3
解决办法
8万
查看次数

HTML5离线存储.文件存储?目录和文件系统API

对于离线存储数据,WebApp可以使用:

但显然没有文件存储.当然,有一个基于清单的缓存,但它只是一个缓存,不应该用作用户数据存储.

这是否意味着WebApp的用户被迫使用某种云文件存储?

有没有办法在用户的本地机器上保存大文件?或者也许某种方式来选择本地文件夹Web应用程序可用于存储用户数据?

编辑.安全.HTML5已经能够将大部分数据写入用户的本地计算机.如果浏览器提供另一个基于文件的抽象来存储数据,我没有看到任何安全问题.它可以是一些虚拟机,虚拟文件​​系统等等.

嗯,我想,有可能编写JS文件系统并将其存储为SQL中的blob ...

类似的 问题.

更新:嗯...最近我发现了 这个这个.也许这就是我要找的......是的,它是!请参阅以下答案.

filesystems html5 filereader filewriter

21
推荐指数
2
解决办法
1万
查看次数

一次一个地使用Javascript FileReader API读取多个文件

我正在使用FileReader API来读取多个文件.

<html> <body>
    <input type="file" id="filesx" name="filesx[]"
      onchange="readmultifiles(this.files)" multiple=""/>
    <div id="bag"><ul/></div>
<script>
window.onload = function() {
    if (typeof window.FileReader !== 'function') {
        alert("The file API isn't supported on this browser yet.");
    }
}

function readmultifiles(files) {
    var ul = document.querySelector("#bag>ul");
    while (ul.hasChildNodes()) {
        ul.removeChild(ul.firstChild);
    }

    function setup_reader(file) {
        var name = file.name;
        var reader = new FileReader();
        reader.onload = function(e) {
            var bin = e.target.result; //get file content

            // do sth with text

            var li = document.createElement("li");
            li.innerHTML …
Run Code Online (Sandbox Code Playgroud)

javascript html5 filereader fileapi

21
推荐指数
4
解决办法
3万
查看次数

IndexedDB:将文件存储为File或Blob或ArrayBuffer.什么是最好的选择?

现在大多数浏览器都支持IndexedDB将数据/文件直接存储为File,BlobArrayBuffer.

此代码将IDB密钥"File1"保存为文件

<input type="file" id="userfile" />
var a = document.getElementById("userfile");
var b = a.files[0];
Run Code Online (Sandbox Code Playgroud)

现在我们可以使用以下代码直接将此文件保存到IDB

//LocalForage is a library for indexedDB developed by Mozilla
//Note: localforage._config.driver=asyncStorage (IDB method)
function run(){
  //"File1" = IDB data table key and b=value
  localforage.setItem("File1", b, function(err, value) {
    console.log(err)
  });
}

a.onchange = function(){
  run()
}
Run Code Online (Sandbox Code Playgroud)

此代码将IDB密钥"BlobFile"保存为Blob

mb = new Blob([b],{type:b.type});

function runB(){
  localforage.setItem("BlobFile", mb, function(err, value){
    console.log(err)
  });    
}

a.onchange = function(){
  runB()
}
Run Code Online (Sandbox Code Playgroud)

我想知道将文件存储到IDB的最佳做法是什么.(文件/斑点/ ArrayBuffer) …

javascript html5 blob filereader indexeddb

21
推荐指数
2
解决办法
7423
查看次数

如何在AngularJS中读取文件?

是否可以读取AngularJS中的文件?我想将文件放入HTML5画布中进行裁剪.

我在考虑使用指令?这是我想要放入我的指令的javscript代码:

function readURL(input) {

    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#blah').attr('src', e.target.result);
        }

        reader.readAsDataURL(input.files[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript canvas filereader angularjs

20
推荐指数
2
解决办法
9万
查看次数