HTML5 fileWriter.write doesn't write to local file

和自甴很熟 提交于 2019-12-11 01:27:43

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!