如何使用jsonp将图像发送到服务器?

时间:2016-11-28 22:58:03

标签: javascript php ajax jsonp

我正在开发应用程序并使用Javascript的方法'jsonp'来发送和从php&获取数据MYSQL服务器,因为应用程序不在我保存数据的同一台服务器上。

我可以使用相同的jsonp方法将图像发送到该服务器, 喜欢编码或使用二进制或其他什么?

2 个答案:

答案 0 :(得分:2)

您可以对图像进行base64编码并将其作为字符串发送。你可以在客户端这些方面做点什么:

var the_file = new Blob([window.atob(base_64_string)], { type: 'image/png', encoding: 'utf-8' });
var fr = new FileReader();
fr.onload = function (oFREvent) {
    var v = oFREvent.target.result.split(',')[1];
    v = atob(v);
    var good_b64 = btoa(decodeURIComponent(escape(v)));
    img.src = "data:image/png;base64," + good_b64;
    img.onload = function () {
        //do stuff here
    };
};
fr.readAsDataURL(the_file);

正如@SLaks在他的评论中暗示的那样,考虑为你的终端而不是jsonp使用CORS标题,但不是必需的。

不确定您的用例是什么,但为什么不使用图片链接?

答案 1 :(得分:1)

您无法使用jsonp流式传输图像。 您有两种选择使用iframe trick

或者您可以使用websockets

如果您使用json字符串对图像库64进行编码,则图像将限制为文件大小。