Currently, there is really little information on this, so I put together an example that brings together:
- Use attribute
webkitdirectoryon <input type="file">.- This allows the user to select a directory using the appropriate dialog box.
- Using the file system API.
- API .
- API, .
<input type="file"> API .
Chrome, webkit, .
http://jsfiddle.net/zLna6/3/
, , , :
var fs,
err = function(e) {
throw e;
};
webkitRequestFileSystem(
window.TEMPORARY,
5 * 1024 * 1024,
function(_fs) {
fs = _fs;
},
err
);
$(":file").on("change", function() {
$("ul").empty();
var files = this.files;
if(!files) return;
function save(i) {
var file = files[i];
var text = file ? file.name : "Done!";
$("<li>").text(text).appendTo("ul");
if(!file) return;
fs.root.getFile(
file.name,
{ create: true },
function(fileEntry) {
fileEntry.createWriter(function(writer) {
writer.onwriteend = function() {
save(i + 1);
};
writer.onerror = err;
var fr = new FileReader;
fr.onloadend = function() {
var builder = new WebKitBlobBuilder;
builder.append(fr.result);
writer.write(builder.getBlob());
};
fr.onerror = err;
fr.readAsArrayBuffer(file);
}, err);
},
err
);
}
save(0);
});
$("ul").on("click", "li:not(:last)", function() {
fs.root.getFile($(this).text(), {}, function(fileEntry) {
fileEntry.file(function(file) {
var fr = new FileReader;
fr.onloadend = function() {
console.log(fr.result.slice(0, 100));
};
fr.readAsBinaryString(file);
});
}, err);
});