Google扩展程序-通过POST请求以JavaScript发送本地文件?

时间:2019-09-24 08:37:52

标签: javascript google-chrome-extension

我想开发一个Google Chrome扩展程序,该扩展程序可以从服务器下载PDF,然后将其直接上传到另一个页面。下载文档很容易。但是,上传似乎更难。我需要访问我的本地文件浏览器,将文件缓存在代码中,然后通过POST请求发送。有什么办法可以做到?

1 个答案:

答案 0 :(得分:0)

我找到了HTML5 Filesystem的解决方案。收到的File Object是一种Blob,可以通过XMLHttpRequest发送。尽管由于某种原因它不起作用,但我将其附加到了我知道有效的FormData上。缺点是它只能在扩展程序的根目录中使用。

    chrome.runtime.getPackageDirectoryEntry(function (root) {
            root.getFile("myFile.pdf", {}, function (fileEntry) {
                fileEntry.file(function (file) {
                    var formData = new FormData();
                    formData.append("file", file);
                    var http = new XMLHttpRequest();
                    var url = 'myUrl';
                    http.open('POST', url, true);  
                    http.onreadystatechange = function () {
                        if (http.readyState == 4 && http.status == 200) {
                            alert(http.responseText);
                        }
                    }
                    http.send(formData);
                });
            });   
        });