jQuery.ajax()给出了破碎的图像数据?

时间:2016-11-07 11:54:46

标签: jquery ajax image binary phantomjs

我正在尝试通过jQuery.ajax()向一个由Phantomjs获取的页面添加一个AJAX调用,以下载一个额外的图像/myfile.jpg:

var result = page.evaluate(function() {

    var out;
    $.ajax({
        'async' : false,
        'url' : '/myfile.jpg',
        'success' : function(data, status, xhr) {
            out = data;
        }
    });
    return out;

});

fs.write('myfile.jpg', result, 'wb');

数据似乎已成功下载并保存到本地文件myfile.jpg但它是一个破损的图像,根本无法打开。

文件大小似乎是正确的,但我不确定。在Notepad ++文本编辑器中打开的内容不是文本,而是许多无法识别的字符或字节。

我在这做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用download功能 http://docs.casperjs.org/en/latest/modules/casper.html#download

但是,如果文件大小超过7MB,您可能会won't be able下载文件。

您也可以将PhantomJS与Download support一起使用(按Vitallium