我遇到了将我的imagem base64保存在MSSQL数据库中的问题。我创建了一个表格TBEquipamento,其中包含一个字段FotoEquipamento varbinary(max);
我还使用Web API 2创建了一个Web服务:
[HttpPost]
[Route("api/insertequipamento")]
[ResponseType(typeof(TBEquipamento))]
public async Task<IHttpActionResult> insertequipamento([FromBody] TBEquipamento addequipamento){
objapi.TBEquipamento.Add(addequipamento);
await objapi.SaveChangesAsync();
return Ok("confirmationSuccess");
}
我在我的网络服务中检查了我的表格字段FotoEquipamento也是varbinary(max)。它到目前为止一切都还可以。
现在我的Angularjs,我在base64中有一张图片,如下例所示:
$scope.FotoEquipamento: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4RDoRXhpZgAATU0AKgAAAAgABAE7AAIAAAAKAAAISodpAAQAAAABAAAIVJydAAEAAAAUAAAQzOocAAcAAAgMAAAAPgAAAAA [...]
如果我将字段$ scope.FotoEquipamento设置为null,如: $ scope.FotoEquipamento = null; 并将所有从Angularjs传递给WebService,它可以完美地工作。但是当我使用base64数据传递$ scope.FotoEquipamento时,它会给我一个错误。
是的,有人可以帮帮我吗?答案 0 :(得分:0)
我在angularjs,webapi环境和sql server中做了类似的事情。与您的实现的不同之处在于,我只是传递纯base64编码的图像而没有引导mimetype,编码信息“data:image / jpeg; base64”。 在通过webapi调用保存之前,代码段显示了准备二进制数据(图像,...)的相关代码。
$scope.saveAttachment = function (content, filename) {
// get empty default model record from database
var newrecord;
...
content = content.substr(content.indexOf("base64,") + "base64,".length);
dataService.saveRecord(content_table, newrecord, 'id')
.then(function (inserted) {
newrecord["id"] = inserted["id"]; // get identity value from database insert ;
});
});
}