Javascript:通过POST启动文件下载和路由文件

时间:2013-09-12 15:47:21

标签: javascript ajax bookmarklet

每隔一段时间(似乎一年一次)我就有机会玩JS 虽然不够精通,但如果我有一些很好的参考资料,我很乐意完成工作。

此时,我觉得我只是想出正确的搜索字词来找到有用的东西。

目标:
我正在寻找帮助的任何文档/文章/说明的示例,提示,建议和/或链接。

BACK STORY:
我们在其网站上有供应商搜索部件号 结果页面包含基本规格和统计信息,并且有定价表的下载链接 我们开发了一种工具来解析工作表并自动将定价输入我们的系统。当前的工作流程是下载文件并在本地保存,然后将文件上传到我们的表单。

TASK:
我打算做的是制作一个书签,以便删除几个步骤 我想让JS启动DL,然后将文件立即发送到当前表单处理action url(直接从内存/临时位置)。

概要
当然,片段和示例总是 awesome !!
除此之外,任何一点共享都将受到赞赏

1 个答案:

答案 0 :(得分:0)

假设您传递了相同的来源政策,并且您的浏览器支持XMLHttpRequestBlobFormData

function getThenUpload(fromURL, toURL) {
    var xhrFrom = new XMLHttpRequest();
    xhrFrom.onload = function () {
        var xhrTo = new XMLHttpRequest(),
            formData = new FormData();    // make file have <form> style
        formData.append('file', this.response); // set "name, value" of "<input>"
        xhrTo.open('POST', toURL);
        xhrTo.send(formData);             // upload file
    }
    xhrFrom.open('GET', fromURL);
    xhrFrom.responseType = 'blob';        // expecting file
    xhrFrom.send();                       // download file
}
getThenUpload('/file.txt', 'upload.php'); // start