我的数据库中有一张图像。我想检索图像并使用 Angular JS 将其显示在网页中。获取数据后我有字节数组。我如何将数据发送到html页面。我的以下代码有问题。请帮助。
当我单击链接查看图像时,页面向服务器发送 2 个 get 请求,而不是 1 个。正在连续发送请求2次。
注意:我尝试使用下面的链接..但它不起作用
AngularJS - Show byte array content as image
下面是我的js文件
app.controller('aboutCtrl', function($scope,$http,$location) {
$scope.message = 'This is Add new order screen';
var url = '/Angular/login';
$http.get(url).success(function(result) {
$scope.image = result.image;
})
});
//html
<img data-ng-src="data:image/PNG;base64,{{image}}">
Java类文件
public String getImage() throws FileNotFoundException{
String byteStr=null;
try
{
Connection con= DbConnect.getConnection();
String sql ="select * from image_data where id=1";
PreparedStatement ps=con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
Blob b=rs.getBlob(2);
byte barr[]=b.getBytes(1,(int)b.length());
byteStr = new String(barr);
}
}catch(Exception e){
e.printStackTrace();
}
return byteStr;
}
Servlet 代码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("inside get");
JSONObject result= new JSONObject();
Retreive rt = new Retreive();
result.put("image", rt.getImage());
response.setContentType("application/json");
PrintWriter out = response.getWriter();
out.write(result.toString());
out.flush();
out.close();
}
最佳答案
看起来像你的image
不是 base64 编码的字符串,但仍然是字节数组。您需要先对其进行编码才能像这样使用它 <img data-ng-src="data:image/PNG;base64,{{image}}">
关于javascript - 在 Angular js中将字节数组显示为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31198509/