在ASP.NET中使用c#从数据库读取二进制图像

在ASP.NET中使用c#从数据库读取二进制图像,c#,sql-server,asp.net-mvc,binary,entity-framework-6,C#,Sql Server,Asp.net Mvc,Binary,Entity Framework 6,我需要从数据库中检索一个二进制图像,并将其显示在我的orgchart中 我使用实体框架,我恢复了我的数据,但是我得到了像URL一样的二进制图像,当然它给了我一个错误,正如你在图像中看到的那样。 它将二进制图像作为url,当然给出了错误414 我的问题如下: public JsonResult Read() { var nodes = (from s in entities.AGENT from u in entities.UNITE_ORG

我需要从数据库中检索一个二进制图像,并将其显示在我的orgchart中

我使用实体框架,我恢复了我的数据,但是我得到了像URL一样的二进制图像,当然它给了我一个错误,正如你在图像中看到的那样。

它将二进制图像作为url,当然给出了错误414 我的问题如下:

public JsonResult Read()
{
   var nodes = (from s in entities.AGENT
                from u in entities.UNITE_ORG
                from f in entities.PHOTO
                where s.MATRICULE ==  u.RESPONSABLE && f.MATRICULE==s.MATRICULE
                select new NodeModel() { 
                   id= u.UO,
                   pid= u.UO_RATTACHEMENT,
                   responsable = u.RESPONSABLE,
                   matricule = s.MATRICULE,
                   nom= s.NOM,
                   prenom= s.PRENOM,
                   img= f.PHOTO1,
                   poste=u.POSTE,
                });

   return Json(new { nodes = nodes }, JsonRequestBehavior.AllowGet);
}

public class NodeModel
{
   public string id { get; set; }
   public string pid { get; set; }
   public string responsable { get; set; }
   public byte[] img { get; set; }
   public string nom { get; set; }
   public string prenom { get; set; }
   public string poste { get; set; }
   public string matricule{ get; set; }
}
这是我的剧本:

 <script>




    $.get("@Url.Action("Read")").done(function (response) {

        var chart = new OrgChart(document.getElementById("tree"), {
            template: "diva",
            layout: OrgChart.mixed,
            menu: {
            pdf: { text: "Export PDF" },
            png: { text: "Export PNG" },
            svg: { text: "Export SVG" },
            csv: { text: "Export CSV" }
        },

            nodeBinding: {

               field_0: "nom",
               field_1: "prenom",
               field_2:"poste",
               img_0: "img"
            },
             nodeMenu: {
            details: { text: "Details" },
            edit: { text: "Edit" },
            add: { text: "Add" },
            remove: { text: "Remove" }
        },
            nodes: response.nodes

        });
          document.getElementById("selectTemplate").addEventListener("change", function () {
    chart.config.template = this.value;
              chart.draw();

});
    });
</script>

$.get(“@Url.Action(“Read”)”).done(函数(响应){
var chart=新组织结构图(document.getElementById(“树”){
模板:“女主角”,
布局:OrgChart.mixed,
菜单:{
pdf:{text:“导出pdf”},
png:{text:“导出png”},
svg:{text:“导出svg”},
csv:{text:“导出csv”}
},
节点绑定:{
字段0:“名称”,
字段1:“prenom”,
字段2:“poste”,
img_0:“img”
},
诺德梅努:{
详细信息:{text:“详细信息”},
编辑:{text:“编辑”},
添加:{text:“添加”},
删除:{text:“删除”}
},
节点:response.nodes
});
document.getElementById(“selectTemplate”).addEventListener(“更改”,函数(){
chart.config.template=this.value;
chart.draw();
});
});
现在我需要以正确的方式阅读图片,也许我需要将二进制转换成其他东西,但我不知道是哪一种


谢谢大家!

那么,您是否将二进制数据直接返回给客户端?您的客户端代码在您试图显示它的地方是什么样子的?客户端JSON对象是什么样子的?必须以某种方式对图像进行编码。可能是.png或.jpg-您需要获取字节数据并从中渲染图像。您可以将二进制数据作为URI传递,也可以创建对象URI:,图像是binaray,要作为http发送,您需要转换为64位字符串。如何转换为64位字符串?