标签: html5-filesystem

HTML5文件系统 - 如何使用目录阅读器读取目录?

我使用文件输入和webkitdirectory加载了一个目录,如下所述.

<input  id="file_input"  type="file" webkitdirectory directory  />
Run Code Online (Sandbox Code Playgroud)

选择目录后,我可以读取文件大小和其他信息.我的问题是如何使用DirectoryReader接口读取此目录.

我尝试使用下面的代码,但没有成功.results.length变为零.我错过了什么吗?

window.requestFileSystem(TEMPORARY, 1024*1024 /*1MB*/, function(fs) {
        var dirReader = fs.root.createReader();
        var entries = [];
        // Call the reader.readEntries() until no more results are returned.
        var readEntries = function() {
            dirReader.readEntries(function(results) {
                // If no more results are returned, we're done.
                if (!results.length) {
                    // Sort list by name of entry.
                    entries.sort(function(a, b) {
                        return a.name < b.name ? -1 :
                        b.name < a.name ? 1 : 0;
                    });
                   // listResults(entries); // Render …
Run Code Online (Sandbox Code Playgroud)

html5-filesystem

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

为什么这个文件系统api requestQuota调用失败?

我正在编写一个HTML5应用程序以在Chrome中运行,但它将在本地文件系统上(因此他们将通过双击html文件启动它).当我尝试访问文件系统时抛出错误,我认为这是因为它是本地文件.有没有办法让Chrome允许这个?

(注意:我确实得到弹出窗口,要求我允许应用程序永久存储,然后单击"确定".它仍然会抛出此错误)

以下代码抛出错误:

DOMException {message: "NotSupportedError: DOM Exception 9", name: "NotSupportedError", code: 9, INDEX_SIZE_ERR: 1, DOMSTRING_SIZE_ERR: 2…}

filetest.html

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <script>
        //File System handler
        window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;

        function onInitFs(fs) {
            console.log('Opened file system: ' + fs.name);
        }

        function errorHandler(e) {
            var msg = '';

            switch (e.code) {
            case FileError.QUOTA_EXCEEDED_ERR:
                msg = 'QUOTA_EXCEEDED_ERR';
                break;
            case FileError.NOT_FOUND_ERR:
                msg = 'NOT_FOUND_ERR';
                break;
            case FileError.SECURITY_ERR:
                msg = 'SECURITY_ERR';
                break;
            case FileError.INVALID_MODIFICATION_ERR:
                msg = 'INVALID_MODIFICATION_ERR';
                break;
            case FileError.INVALID_STATE_ERR:
                msg = …
Run Code Online (Sandbox Code Playgroud)

javascript html5 google-chrome html5-filesystem

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

HTML 5文件系统访问类型错误

我正在开发一个webapp,我正在尝试使用文件系统API访问目录.我需要在根据规范访问目录之前向用户请求配额.我应该这样做:

...
navigator.webkitPersistentStorage.requestQuota(PERSISTENT, 1024*1024, 
function(gB){
   window.requestFileSystem(PERSISTENT, gB, onInitFs, errorHandler);
}, function(e){
   console.log('Error', e);
})
...
Run Code Online (Sandbox Code Playgroud)

每次我这样做,我收到一条**TypeError: Type error**消息.请问我做错了什么?提前致谢.
注意:已经定义了onInitFs和errorHandler我只是没有在这里包含代码.

javascript html5 web-storage html5-filesystem

5
推荐指数
1
解决办法
3441
查看次数

HTML5 中的本地编辑器

我想知道 HTML5 的当前状态是否可以编辑本地文件。更准确地说,我的意思是:

  • 文件不是由服务器提供的(它们在 上file://),或者在最坏的情况下,由本地服务器提供
  • 编辑器要么在本地文件系统上,要么由外部服务器提供服务
  • 如果我不使用浏览器扩展程序会更好
  • 总体目标是创建一个不需要重新加载页面或手动插入文件的在线 IDE

我知道有 fileSystem API,但从我读到的内容来看,它似乎仅适用于 chrome 扩展?那么监听文件更改呢?

我还在trace.gl上注意到,可以创建点击后打开本地文本编辑器的链接(就像在 chrome 控制台中一样)。

是否可以重现我们可以看到的内容,trace.gl但结合访问本地文件系统和监听文件更改事件,以创建某种本地 IDE 为目标?

更精确地编辑:目标实际上是创建一个 IDE。想想代码 IDE (Eclipse ...) 的例子,它显示工作区中的每个文件和目录,并听取更改,可以实时读/写等。这就是我想要实现的。PS:如果需要,它可能是特定于浏览器的

html javascript ide google-chrome html5-filesystem

5
推荐指数
1
解决办法
1199
查看次数

Blob 数据驻留在哪里?

我最终可能会在长时间运行的 Web 应用程序中处理以 Blob 为代表的大量数据。其中一些使用 XHR(缓存友好)获得,其他使用new Blob(...).

  • 现在,如果我的阅读正确的话,Blob 是由磁盘还是内存支持的?
  • 这是如何决定的?(浏览器遵循相同的规则吗?)
  • 有没有办法强制或保证某些行为?

我主要关心的是如何管理这些斑点。我最初的想法是保留一些参考资料。但如果在应用程序的整个生命周期中将大量数据保留在内存中,那就很糟糕了。

html javascript blob html5-filesystem

5
推荐指数
1
解决办法
483
查看次数

WP8/Cordova文件系统 - 有谁知道正确的代码?

关于如何在WP8平台上使用Cordova文件插件的文档严重缺乏.

我在Android,fireOS和iOS上都有一个应用程序,都使用文件插件查看目录内容,从我的webservice下载,保存和打开生成的文件,这些文件都使用以下代码:

function listDir() {
//console.log('listDir');
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

function gotFS(fileSystem) {
    //console.log('gotFS. filesystem.root = ' + fileSystem.root.value);
    fileSystem.root.getDirectory("MyFolder", { create: true, exclusive: false }, gotDir);

}

function gotDir(dirEntry) {
    //console.log('gotDir');
    // Get a directory reader
    var directoryReader = dirEntry.createReader();

    // Get a list of all the entries in the directory
    directoryReader.readEntries(success, fail);

}

function success(entries) {
    var i = 0, sb = '';
    sb += '<ul data-role="listview" data-inset="true" id="pdfFiles">';
    if (entries.length > 0) {
        for (i = 0; …
Run Code Online (Sandbox Code Playgroud)

cordova html5-filesystem windows-phone-8 cordova-plugins

5
推荐指数
1
解决办法
1359
查看次数

Chrome应用:如何在后台将blob内容保存到fileSystem?

在Chrome应用中,我使用JavaScript XHR从服务器下载blob内容(特别是Angular $ http GET,响应类型为'blob')

我该如何将其保存到chrome应用程序的文件系统?

目前在HTML5文件系统API上使用Angular包装器 https://github.com/maciel310/angular-filesystem

我不想向用户显示弹出窗口(因此我无法使用chrome.fileSystem. chooseEntry)

chrome.fileSystem.requestFileSystemAPI仅受Kiosk专用应用程序支持.因此我使用的是HTML5 FileSystem API而不是chrome.

我正在使用以下代码来使XHR获取blob.

 $http({
          url: SERVER_URL+"/someVideo.mp4",
          method: "GET",
          responseType: "blob"
      }).then(function(response) {
          console.log(response);
          fileSystem.writeBlob(response.name, response).then(function() {
             console.log("file saved");
          }, function(err) {
              console.log(err);
          });
      }, function (response) {

      });
Run Code Online (Sandbox Code Playgroud)

这是我的writeBlob方法

writeBlob: function(fileName, blob, append) {
    append = (typeof append == 'undefined' ? false : append);

    var def = $q.defer();

    fsDefer.promise.then(function(fs) {

        fs.root.getFile(fileName, {create: true}, function(fileEntry) {

            fileEntry.createWriter(function(fileWriter) {
                if(append) {
                    fileWriter.seek(fileWriter.length);
                }

                var truncated = false; …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome angularjs html5-filesystem google-chrome-app

5
推荐指数
1
解决办法
2422
查看次数

使用文件系统作为离线播放视频的来源

我正在尝试为我的HTML5视频播放器添加离线功能.我试图将文件作为blob写入chrome文件系统,然后从那里读取它们.我相信我遇到的问题是文件实际上并没有被写入,只是文件名.由于我的下面的代码目前已经构成,它仍然有效,但仍然只有它永久连接到互联网.我的目标是将文件下载到文件系统中的永久目录,然后在互联网断开连接时继续播放.

$(document).ready(function() {


    var dir = "http://www.kevmoe.com/networks/gsplayer/";
    var fileextension = ".mp4";
    var srcfiles = $.ajax({
        //This will retrieve the contents of the folder if the folder is configured as 'browsable'
        url: dir,
        success: function(data) {
            //List all .mp4 file names in the page
            $(data).find("a:contains(" + fileextension + ")").each(function() {
                var filename = $(this).attr("href").replace(window.location.host, "").replace("http://", "");

                $("#container").append("<div id='div1' class='video'><video id='video1' class='vidarray' preload='none' poster='bkg.png'><source src='" + filename + "' type='video/mp4'></video></div>");
                async: false;


                window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;

                window.requestFileSystem(window.PERSISTANT, 200000 * 1024 * …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-os html5-filesystem

5
推荐指数
1
解决办法
822
查看次数

HTML5 FileReader 相当于 nodejs 'fs'

我试图用 javascript 读取和写入文件。Nodejs 'fs' 不工作。我发现有一个等效的 HTML5 API。

相当于什么

fs.writeFile('my.file', filedata)
fs.readFileSync(__dirname + '/dir/leaves.file')
Run Code Online (Sandbox Code Playgroud)

在 HTML5 文件读取器 api 中

html javascript filereader html5-filesystem

5
推荐指数
1
解决办法
9562
查看次数

Cordova使用文件URL移动文件

如何使用从相机获取的URL移动文件?

函数moveTo既不调用successCallback也不调用errorCallback.任何人都可以告诉我我做错了什么以及可能的解决方案是什么样的?

function successCallback(entry) {
    console.log("New Path: " + entry.fullPath);
    alert("Success. New Path: " + entry.fullPath);
}

function errorCallback(error) {
    console.log("Error:" + error.code)
    alert(error.code);
}

// fileUri = file:///emu/0/android/cache/something.jpg
function moveFile(fileUri) {
    newFileUri  = cordova.file.dataDirectory + "images/";
    oldFileUri  = fileUri;
    fileExt     = "." + oldFileUri.split('.').pop();

    newFileName = guid("car") + fileExt;

    // move the file to a new directory and rename it
    fileUri.moveTo(cordova.file.dataDirectory, newFileName, successCallback, errorCallback);
}
Run Code Online (Sandbox Code Playgroud)

我使用的是Cordova 4.1.2版还安装了Cordova File Plugin

javascript cordova html5-filesystem

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