我正在使用java从oracle数据库中检索视频,并使用base64值发送响应这里是我的java代码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{ String video64="";
System.out.println("service");
try {
PreparedStatement ps=cn.prepareStatement("select * from video ");
ResultSet rs=ps.executeQuery();
rs.next();
Blob vedio=rs.getBlob(1);
System.out.println("try");
if(vedio !=null)
{
byte videobytes[]=vedio.getBytes(1,(int)vedio.length());
video64 = DatatypeConverter.printBase64Binary(videobytes);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(video64);
response.getWriter().write(video64);
}
here is my html
<video controls>
<source type="video/mp4" id="v">
</video>
我正在使用ajax调用来发送请求并使用jquery将我的响应添加到<source type="video/mp4" id="v">
这是ajax
$("#sub").click(function(){
$.ajax({
url:"RetriveVedio",
method: "get",
dataType: 'text',
success:function(response){
console.log(response);
$("#v").attr("src",'data:video/mp4;base64,'+response);
$("#v").load();
}
});
});
但src
未添加到源代码中,base64
值也不适用于video tag
这是我获得的base64值作为响应AAAAGGZ0eXBtcDQyAAAAAG1wNDFpc29tBNjldm1kYXQAAAAAAAAAEAA=
这有什么问题?
答案 0 :(得分:0)
上述代码的所有内容都很好。但blob
不正确,当我使用java将视频插入database
视频时未正确转换为byteStream
。
这就是回复AAAAGGZ0eXBtcDQyAAAAAG1wNDFpc29tBNjldm1kYXQAAAAAAAAAEAA=
错误的原因。
这就是为什么上面的代码不起作用