How to generate a file for download in a Google Chrome Extension?

后端 未结 3 512
长情又很酷
长情又很酷 2020-12-29 15:33

I want to generate a CSV file as the result of some user interactions and then prompt the user to download it. How can I do that?

I don\'t think it\'s possible in st

相关标签:
3条回答
  • 2020-12-29 16:14

    I needed to do exactly the same recently - generating file and enforcing its download in Chrome extension. Here you are a code snippet doing that, using ES6 and the recommended methods:

    let docContent = ... /* your content */;
    let doc = URL.createObjectURL( new Blob([docContent], {type: 'application/octet-binary'}) );
    chrome.downloads.download({ url: doc, filename: filename, conflictAction: 'overwrite', saveAs: true });
    

    You also have to declare a proper privilege in manifest.json:

    "permissions" : ["downloads"]
    
    0 讨论(0)
  • 2020-12-29 16:16

    Chrome doesn't provide any help with this, but I think you should be able to trigger a file save dialog using downloadify js library which uses a flash component behind the scenes.

    0 讨论(0)
  • 2020-12-29 16:31

    You can now use HTML5 File API to download a file. It is still in development, but you can use a BlobBuilder and redirect your use to download that file:

    var bb = new BlobBuilder();
    bb.append(csvContents);
    var blob = bb.getBlob(); 
    location.href = window.webkitURL.createObjectURL(blob);
    

    For more information regarding the File API, HTML5Rocks has a great tutorial:

    http://www.html5rocks.com/tutorials/file/filesystem/

    0 讨论(0)
提交回复
热议问题