在ASP.NET中使用c#从数据库读取二进制图像
我需要从数据库中检索一个二进制图像,并将其显示在我的orgchart中 我使用实体框架,我恢复了我的数据,但是我得到了像URL一样的二进制图像,当然它给了我一个错误,正如你在图像中看到的那样。 它将二进制图像作为url,当然给出了错误414 我的问题如下:在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
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位字符串?