标签: fileapi

在Google Chrome中指定blob编码

以下代码(供应商规范化)工作得很好,并在Firefox 8中显示"➀➁➂测试",但在谷歌浏览器中显示"“â,â€,测试".有没有办法在使用文件系统API将文件写入临时文件系统时保留Google Chrome中的blob编码?

var bb = new BlobBuilder;
bb.append("??? Test");
var b = bb.getBlob("text/plain;charset=UTF-8");
var url = URL.createObjectURL(b);
open(url);
Run Code Online (Sandbox Code Playgroud)

javascript encoding google-chrome fileapi

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

safari中的文件输入大小问题,用于多个文件选择

我在Windows Vista上的Safari 5.1中遇到多个文件上传时遇到了不一致(没有尝试过其他平台).input元素具有multiple允许选择多个文件的标志.当用户确实选择多个文件时,会出现问题.在这种情况下,每个File都具有size属性0.如果(仍然带有multiple标志),用户只选择一个文件,则该size属性正确包含文件大小.

在以下示例中可以看到该问题.测试并查看单个文件选择和多个文件选择的输出.(您需要在测试之间重置). JsFiddle测试

有没有人知道一个解决方法?

javascript safari file-upload filesize fileapi

11
推荐指数
1
解决办法
7574
查看次数

File对象中webkitRelativePath属性的用途是什么?

如果您使用以下简单的内容在Chrome控制台中打印出File对象:

<input type="file" onchange="console.info(this.files);" />
Run Code Online (Sandbox Code Playgroud)

您将在其他属性中看到一个始终为空的webkitRelativePath属性:

fileName: "07.png"
fileSize: 33022
lastModifiedDate: Date
name: "07.png"
size: 33022
type: "image/png"
webkitRelativePath: ""
__proto__: File
Run Code Online (Sandbox Code Playgroud)

它的目的是什么?它是如何被利用的?

console html5 dom webkit fileapi

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

11
推荐指数
1
解决办法
5230
查看次数

在Web浏览器中使用javascript读取文件流

在Web浏览器中,我想在本地文件系统中计算大文件的sha1校验和,而不将其发送到服务器.

File API支持从本地磁盘读取文件,但我猜它会读取整个文件并将所有文件放入内存.如果文件大于系统内存,则可能会出现问题.

Streams API似乎对解决这个问题很有用,但我找不到如何使用API​​读取文件.

有没有办法在Web浏览器中使用javascript从本地磁盘读取文件流?

html stream fileapi

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

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

HTML5 File API中的FileReader.readAsText如何工作?

我编写了以下代码来检查上传的文件是否存在使用HTML5文件API.

<input type="file" id="myfile">
<button type="button" onclick="addDoc()">Add Document</button>
<p id="DisplayText"></p>
Run Code Online (Sandbox Code Playgroud)

以下JavaScript代码已映射到它如下:

function addDoc() {
  var file=document.getElementById("myFile").files[0]; //for input type=file
  var reader=new FileReader();
  reader.onload = function(e) {}
  reader.readAsText(file);
  var error = reader.error;
  var texte=reader.result;
  document.getElementById("DisplayText").innerText=reader.result; /*<p id="DisplayText>*/
}
Run Code Online (Sandbox Code Playgroud)

从本地系统浏览文件后,我尝试在单击之前从文件夹中删除"浏览"文档addDoc().单击按钮后我仍然可以看到Filereader.result不是null并且可以显示所有内容.

有人可以解释Filereader的工作原理吗?一旦浏览文件,FileReader就会被绑定吗?

我们也可以检查系统Readonly Attribute with FileReader是否与Java类似File.canread()

有人可以建议吗?我有IE11来测试代码.

javascript html5 textarea drag-and-drop fileapi

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

Angular 2下载带有身份验证的.CSV文件点击事件

我正在使用spring boot后端,而我的api使用服务通过OutputStreamWriter发送数据.我可以使用像这样的点击事件在Angular 2中下载它:

打字稿

results(){
window.location.href='myapicall';
}
Run Code Online (Sandbox Code Playgroud)

HTML

<button (click)="results()"
                    class="btn btn-primary">Export</button>
Run Code Online (Sandbox Code Playgroud)

这很好用; 但是,我最近为我的api端点实现了安全性,现在每次尝试拨打电话时都会收到401,因为它没有发送标头.

我写了一个服务,我可以在控制台中看到结果,但我似乎无法弄清楚如何下载文件.

DownloadFileService

import {Injectable} from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/Rx';

@Injectable()
export class DownloadFileService {

    headers:Headers;
    bearer: string;
    constructor(public http: Http) {}



    getFile(url:string) {
        this.bearer = 'Bearer '+ localStorage.getItem('currentUser');
        this.headers = new Headers();
        this.headers.append('Authorization', this.bearer);

        return this.http.get(url, {headers: this.headers});
    }



}
Run Code Online (Sandbox Code Playgroud)

我尝试通过blob下载数据,如本文所述: 如何使用Angular2下载文件

下载的文件类型为File,内容为:

响应状态:200确定URL:我的网址

它实际上并没有下载数据.

downloadFile(data: any){
        var blob = new Blob([data], { type: 'text/csv' });
        var url= window.URL.createObjectURL(blob);
        window.open(url); …
Run Code Online (Sandbox Code Playgroud)

javascript download fileapi typescript angular

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

Chrome内存问题 - 文件API + AngularJS

我有一个需要将大文件上传到Azure BLOB存储的Web应用程序.我的解决方案使用HTML5 File API切片成块,然后将块作为blob块放置,块的ID存储在数组中,然后块作为blob提交.

该解决方案在IE中运行良好.在64位Chrome上,我已经成功上传了4Gb文件但是看到了非常大的内存使用量(2Gb +).在32位Chrome上,特定的镀铬工艺将达到约500-550Mb然后崩溃.

我看不到任何明显的内存泄漏或我可以改变以帮助垃圾收集的事情.我将块ID存储在一个数组中,所以显然会有一些内存蠕变,但这不应该很大.这几乎就像File API将整个文件保存在内存中一样.

它是作为一个从控制器调用的Angular服务编写的,我认为只是服务代码是相关的:

(function() {
    'use strict';

    angular
    .module('app.core')
    .factory('blobUploadService',
    [
        '$http', 'stringUtilities',
        blobUploadService
    ]);

function blobUploadService($http, stringUtilities) {

    var defaultBlockSize = 1024 * 1024; // Default to 1024KB
    var stopWatch = {};
    var state = {};

    var initializeState = function(config) {
        var blockSize = defaultBlockSize;
        if (config.blockSize) blockSize = config.blockSize;

        var maxBlockSize = blockSize;
        var numberOfBlocks = 1;

        var file = config.file;

        var fileSize = file.size;
        if (fileSize < blockSize) {
            maxBlockSize = …
Run Code Online (Sandbox Code Playgroud)

javascript html5 google-chrome azure fileapi

11
推荐指数
1
解决办法
1030
查看次数

window.resolveLocalFileSystemURL vs window.requestFileSystem

使用cordova文件插件下载文件时使用window.resolveLocalFileSystemURLvs有什么区别window.requestFileSystem?我找不到关于resolveLocalFileSystemURL的任何文档,但它工作正常,它更容易使用?

我应该在cordova应用程序中使用哪一个简单的CRUD操作?

(我用cordova 3.4.0-0.1.3)

我这样使用它:

function onResolveSuccess(fileEntry) {

            fileEntry.file(function(file) {
               var reader = new FileReader();

               reader.onloadend = function(evt) {
                    var _machines = JSON.parse(evt.target.result);  
                    machinesCache.setMachines(_machines.AllMainCategories);
               };

               reader.readAsText(file);
            }, errorHandler);

        };

        window.resolveLocalFileSystemURL("cdvfile://localhost/persistent/machinedata/machines.json", onResolveSuccess, errorHandler);
Run Code Online (Sandbox Code Playgroud)

fileapi cordova

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