[C#]不能显示图像生成为 byte]

标签: AngularJS C#
发布时间: 2017/2/23 20:08:25
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的控制器 (ASP MVC):

 public FileResult getTimelineChart(DateTime tsInic, DateTime tsEnd, string typeReq = "normal")
    {
            var rep = new AfterSalesWind.Models.OM_Repository();
            var chart = rep.getTimelineChart(tsInic, tsEnd);

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            chart.SaveImage(ms, ChartImageFormat.Png);

            return File(ms.ToArray(), @"image/png");
    }

角控制器︰

getTimelineChart = function (codSap, revStr) {
    dataService.getTimelineChart($scope.dateFilter.dt1, $scope.dateFilter.dt2, function (result) {
        $scope.imageChart = "data:image/png;base64," + result;
    });
}

角的服务︰

getTimelineChart = function (tsInic, tsEnd, callback) {
    $http({
        url: '/OM_API/getTimelineChart',
        method: 'POST',
        data: {
            tsInic: tsInic,
            tsEnd: tsEnd
        }
    }).success(function (result, status, headers) {
        return callback(result);
    }).error(function (error) {
        return callback(error);
    });
}

我的 html:

<div class="row">
    <img ng-src="{{imageChart}}" width="1331" height="360" />
</div>

根据我看过这段代码应该允许我显示 png 图像格式的图像。 错误是出现错误︰enter image description here

当我叫到服务结果看起来像这样enter image description here

我在哪里错了吗?

谢谢你。

解决方法 1:

首先,我不知道是否它是一个很好的解决方案,我只是知道它对我的作品。

仅当使用 base-64 编码的时候,我有显示图像。然后我会改变我的答复从 MVC 像这样︰

 public String getTimelineChart(DateTime tsInic, DateTime tsEnd, string typeReq = "normal")
{
        var rep = new AfterSalesWind.Models.OM_Repository();
        var chart = rep.getTimelineChart(tsInic, tsEnd);

        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        chart.SaveImage(ms, ChartImageFormat.Png);

        return Convert.ToBase64String(ms.ToArray());
}
官方微信
官方QQ群
31647020