Meteor - 从服务器向浏览器写入图像内容

时间:2015-08-07 18:09:06

标签: meteor

我有一个服务器方法,可以通过API调用来获取图像文件的内容。

getImageApi: function (param1, param2, imageType) {
            var url = http:/somehost/image?param1=' + param1 + '&param2=' + param2 + '&imageType=' + imageType;
            var response = Meteor.http.call('GET', url, {
                headers: {"Content-Type": "image/jpeg"},
                responseType: "buffer"
            });

            if (response.statusCode == 200) {
                return new Uint8Array(pdfResponse.content);
            }
            else {
                throw new Meteor.Error(pdfResponse.statusCode);
                return "";
            }
            return "";
        }

参数imageType可以包含jped,tiff,raw,png等值。

服务器端路由正在调用此方法并将内容写入窗口。

Router.route('/image', function () {
    var param = queryParam;

    var param1 = param.param1;
    var imageType = param.imageType;
    var param2 = param.param2;

    var content="";
    Meteor.call('getImageApi', param1, param2, imageType, function (error, result) {
            if (error) {
                console.log("Error occurred on receiving data");
                content = "";
            } else
                content = new Buffer(result);
        });
    }
    this.response.writeHeader('200', {
        'Content-Type': 'image/jpeg',
    });
    this.response.write(content);
    this.response.end();
    }
}, {where: 'server'});

如果我在响应中将内容类型指定为“image / jpeg”,则会在窗口中显示损坏的图像。如果我没有指定任何内容类型,则无论api返回什么类型的图像,它都会下载.tiff文件。

我想知道我错过了什么。从服务器方法返回数据(转换为缓冲区和Uint8Array)时它是什么东西?或服务器路由上的内容(内容标题和其他标题参数)?

0 个答案:

没有答案
相关问题