问题
I am working on the tutorial for HTML5 FileSystem-API. Basically I would like to write a file to my machine. I am using python's simpleHTTPServer to serve the website. Once I load the webpage, the console doesn't raise an error and I get a message that the write was successful. But I can't find the file anywhere on my machine. Here is my code:
function onInitFs(fs) {
fs.root.getFile('zz11zzlog.txt', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
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 = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
回答1:
But I can't find the file anywhere on my machine.
If the write was successful, the file would be written to local filesystem at chrome or chromium configuration directory at Default
-> File System
directory.
See How to Write in file (user directory) using JavaScript?
回答2:
Call this two line for file download
window.requestFileSystem(window.TEMPORARY, fileSize, function(filesystem){
setTimeout(function() {
downloadFs(filesystem,fileName);
}, time);
}, errorHandler);
function downloadFs(fs,fileName) {
fs.root.getFile(fileName, {create: false}, function(fileEntry) {
console.log("filesystem:"+fileEntry.toURL()) ;
window.location.href = fileEntry.toURL();
}, errorHandler);
}
来源:https://stackoverflow.com/questions/37449382/html5-filewriter-write-doesnt-write-to-local-file