标签: filereader

使用什么而不是FileReader for Safari?

(对网络编程不熟悉,对任何缺乏基础知识表示歉意.)

我的页面允许用户选择一个文件然后在客户端读取并显示在页面的文本框中.我发现这样做的最简单方法是使用FileReader对象,它在Firefox和Chrome中运行良好.

这在Safari(尚未)中不起作用,那么我该怎么做呢?

//When the eventlistener detects a change in the input file...
var file = evt.target.files[0]
var reader = new FileReader();
reader.onload = function (e){document.getElementById('data').value = e.target.result};
reader.readAsText(file);
Run Code Online (Sandbox Code Playgroud)

相关说明:

  • 我正在使用Safari for windows
  • 现在该页面是本地的,因为要读取的文件.在我使用标志--allow-file-access-from-files之前,Chrome存在此问题

javascript safari filereader

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

是否可以在非服务页面上加载带有JS/HTML5 FileReader的文件?

我想在HTML5/JS中创建一个简单的游戏,我不希望用户运行任何网络服务器或必须连接到网站.(只是一个HTML页面)

但看起来FileReader只能用于文件类型输入.

是否可以只有两个文件:index.html和foo.txt并排读取index.html中的foo.txt,例如:

// No input needed, I know waht I want to read
var my_file = new File("foo.txt");
var reader = new FileReader();
alert( reader.readAstext( my_file, "UTF-8" ) );
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

javascript html5 filereader

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

如何使用FileReader的异步特性实现进度条和回调

我在for循环中调用了FileReader API来遍历多个文件对象.我正在使用FileReader来显示图像的预览.

function() {
    for (var i in Files) {
        var fileReader = new FileReader();
        fileReader.readAsBinaryString(Files[i]);
        fileReader.onload = function() {

            // do something on FileReader onload

        }

        fileReader.onprogress = function(data) {
            if (data.lengthComputable) {                                            
                var progress = parseInt( ((data.loaded / data.total) * 100), 10 );
                console.log(progress);
            }
        }
    }

    // do something on completion of FileReader process
    // actions here run before completion of FileReader
}
Run Code Online (Sandbox Code Playgroud)

由于FileReader API的异步特性,我遇到了两个问题.首先,onprogress为每个FileReader实例触发事件.这为我提供了每个文件的进度.然而,我打算显示所有文件的总进度而不是单个文件.

其次,我想执行只应在FileReader的所有实例(每个文件一个)完成时执行的操作.目前,由于FileReader是异步运行的,因此操作在FileReader完成任务之前运行.我已经搜索了很多,但却遇到了解决这些问题的方法.任何帮助表示赞赏.

javascript html5 filereader

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

使用Cordova File Plugin读取文件

我正在使用cordova文件插件 - cordova文件插件

我实际上是从文本文件中读取文件.以下是我的代码

document.addEventListener("deviceready", function () {  
    window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "sameple.txt", gotFile, fail);
}, true);

function gotFile(file) {           
    file.file(function (file) {                
        var reader = new FileReader();
        reader.onloadend = function (evt) {          
            console.log(this.result);
        }
        reader.readAsText(file);                
    }, fail());            
}

function fail(e) {
    console.info("FileSystem Error : " + e);
}
Run Code Online (Sandbox Code Playgroud)

因此每当我运行此代码时,我都会收到以下错误

deviceready has not fired after 5 seconds.
Channel not fired: onPluginsReady
Channel not fired: onCordovaReady

Could not get Cordova FileSystem: Error: deviceready has not fired after 5 seconds.
   "Could not get Cordova …
Run Code Online (Sandbox Code Playgroud)

javascript android filereader cordova phonegap

10
推荐指数
1
解决办法
1538
查看次数

Firefox Web扩展 - 读取本地文件(上次下载的文件)

我正在创建一个Web扩展并从XUL移植.我曾经能够轻松阅读文件

  var dJsm = Components.utils.import("resource://gre/modules/Downloads.jsm").Downloads;
  var tJsm = Components.utils.import("resource://gre/modules/Task.jsm").Task;
  var fuJsm = Components.utils.import("resource://gre/modules/FileUtils.jsm").FileUtils;
  var nsiPromptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);

  ....

  NetUtil.asyncFetch(file, function(inputStream, status) {
           if (!Components.isSuccessCode(status)) {
            return;
           }
            var data =  NetUtil.readInputStreamToString(inputStream, inputStream.available());
            var data = window.btoa(data);
            var encoded_data_to_send_via_xmlhttp = encodeURIComponent(data);
            ...
  });
Run Code Online (Sandbox Code Playgroud)

以上内容将被弃用.

我可以使用downloads.download()来了解最后一次下载是什么,但我无法读取该文件,然后获取encode_data_to_send_via_xmlhttp的等效文件

此外,在Firefox 57以上,意味着我必须尝试通过按钮单击或其他东西伪造用户操作,或上传文件.

  Access to file:// URLs or reading files without any explicit user input 
Run Code Online (Sandbox Code Playgroud)

是不是有一个简单的方法来阅读上次下载的文件?

firefox xmlhttprequest filereader

10
推荐指数
1
解决办法
666
查看次数

是否可以在常规对象(而不是DOM对象)上调度事件?

我刚刚发现FileReader调度事件就像它是一个DOM元素一样.是吗?我想知道是否有可能创建一个类似于FileReader的对象,它没有HTML/XML结构中的表示,但可以调度事件?

javascript events dom filereader dispatch

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

为什么Scala在阅读我的CSV时会崩溃?

该文件在这里

http://dl.dropbox.com/u/12337149/history.csv

我尝试按如下方式读取数据

  for (line <- Source.fromFile(new File(file)).getLines) {
   println(line)
  }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
    at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:319)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
    at java.io.InputStreamReader.read(InputStreamReader.java:167)
    at java.io.BufferedReader.fill(BufferedReader.java:136)
    at java.io.BufferedReader.readLine(BufferedReader.java:299)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)
    at scala.io.BufferedSource$BufferedLineIterator.<init>(BufferedSource.scala:32)
    at scala.io.BufferedSource.getLines(BufferedSource.scala:43)
    at com.alluvia.reports.RunIGConverter$$anonfun$main$1.apply(RunIGConverter.scala:17)
    at com.alluvia.reports.RunIGConverter$$anonfun$main$1.apply(RunIGConverter.scala:15)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
    at scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:38)
    at com.alluvia.reports.RunIGConverter$.main(RunIGConverter.scala:15)
    at com.alluvia.reports.RunIGConverter.main(RunIGConverter.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Run Code Online (Sandbox Code Playgroud)

该文件在excel中打开就好了.我认为这是某种类型的编码问题,但我不知道解决方法

java csv scala filereader

9
推荐指数
1
解决办法
7098
查看次数

替代IE10的readAsBinaryString

IE10中似乎不支持readAsBinaryString,这是JavaScript FileReader对象的一种方法.我按照这篇HTML5 Rocks文章的建议尝试了以下内容:

String.fromCharCode.apply(null, new Uint16Array(buffer));
Run Code Online (Sandbox Code Playgroud)

但是,这会导致Out of stack space错误.

javascript html5 filereader internet-explorer-10

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

文件阅读器告诉我参数 1 不是 blob?

我有一个文件输入,它返回给我的文件路径,但 fileReader 给了我以下错误。

Uncaught TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.
Run Code Online (Sandbox Code Playgroud)

我觉得我在这里错过了一些东西。我哪里错了?

import React from 'react';

    export default class TestPage extends React.Component {
        constructor() {
            super();
            this.state = {
                file: ''
            }
        }

        onChange(e) {
            let reader = new FileReader();
            reader.onload = function(e) {
              this.setState({file: reader.result})
            }
            reader.readAsDataURL(e.target.value);
        }

        render() {
            return (
                <div>
                    <input onChange={this.onChange.bind(this)} type="file" name="file" />
                    <br />
                    <video width="400" controls>
                        <source src={this.state.file} type="video/mp4" />
                    </video>
                </div>
            )
        }
    }
Run Code Online (Sandbox Code Playgroud)

javascript filereader reactjs

9
推荐指数
1
解决办法
4万
查看次数

JavaScript 中 FileReader 的异步/等待问题

我在 Vue.js 项目中使用 FileReader,并且此代码有问题:

async uploadDocuments(files) {
    for (let file of files) {
        let fileName = file.name;
        let fileContent;
        let reader = new FileReader();
        reader.onload = async () => {
            fileContent = reader.result;
            await this.submitFile(fileContent, fileName, fileType)
                .then(/* THEN block */)
                .catch(/* CATCH block */);
        };
        reader.onerror = (error) => { console.warn(error); };
        reader.readAsDataURL(file);
    }
    console.log("COMPLETED");
}

async submitFile(fileContent, fileName, fileType) {
    // this function should handle the file upload and currently contains a timeout
    await new Promise((resolve) => setTimeout(resolve, …
Run Code Online (Sandbox Code Playgroud)

javascript filereader async-await

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