【问题标题】:Can i use fileEntry object (I have list of fileEntry objects) to Upload file using chrome app?我可以使用 fileEntry 对象(我有 fileEntry 对象列表)使用 chrome 应用程序上传文件吗?
【发布时间】:2015-03-01 07:26:44
【问题描述】:

我有一个目录的retainEntry,所以我可以遍历它并获取FileEntry Objects 的列表,但是我想上传这些文件,所以我可以使用FileEntry Object 附加到formdata 对象中并上传它吗?

Menifest.json

"permissions": [
    "alarms","notifications", {"fileSystem": ["write", "retainEntries", "directory"]},
    "storage","http://*/*",
        "https://*/*"
  ],

我的 Action.js

    var chooseDirButton = document.querySelector('#choose_dir');
    var outputdir = document.querySelector('#outputdir');
    chooseDirButton.addEventListener('click', function(e) {chrome.fileSystem.chooseEntry({type: 'openDirectory'}, function(theEntry) {
    chrome.storage.local.set({'chosenFile': chrome.fileSystem.retainEntry(theEntry)});
     loadDirEntry(theEntry)
    });
});



   function loadDirEntry(_chosenEntry) {
      chosenEntry = _chosenEntry;
      if (chosenEntry.isDirectory) {
        var dirReader = chosenEntry.createReader();
        var entries = [];
        // Call the reader.readEntries() until no more results are returned.
        var readEntries = function() {
           dirReader.readEntries (function(results) {
            if (!results.length) {
              console.log(entries.join("\n"));
              displayEntryData(chosenEntry);
            }
            else {
              results.forEach(function(item) {
                // here irem is FileEntry Object , how can i upload file using this FileEntry Object?
                chrome.fileSystem.getDisplayPath(item, function(path) {
                 entries = entries.concat(path);
               });
                entries = entries.concat(item.fullPath);
              });
              readEntries();
            }
          }, errorHandler);
        };

        readEntries(); // Start reading dirs.
      }
    }

参考:Chrome File System Example

【问题讨论】:

标签: google-chrome google-chrome-extension google-chrome-devtools google-chrome-app chromium


【解决方案1】:

正如@gengkev 在评论中所说,使用entry.file(function(f) { ... }) 提取可用于表单提交的File 对象。

【讨论】:

  • 您介意详细说明您的答案吗?因为它肯定会在这里回答我的问题stackoverflow.com/questions/65131231/… -> 如果您可以在我的问题链接中发布答案,我可以接受。
猜你喜欢
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 1970-01-01
相关资源
最近更新 更多