こんにちはみんな车内uがやって:BLOBのmysqlでバイト[]をアップロードしているようですが、なぜですか?
イムをmysqlの行ににenctype = "multipart/form-データ" を介して画像をアップロードしようとすると、Imは奇妙な結果を得る:
JavaのJSP画像を表示します:
<a href="viewevent?id=<%= viewevent.getId()%>">
<img alt="" class="img-responsive image1" src="ViewImage?id=<%= viewevent.getId() %>">
</a>
画像を表示するためのJava ViewImageサーブレット方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String id = request.getParameter("id");
DataAccess bd = new DataAccess();
bd.openConnection();
ResultSet rs = bd.exQuery("SELECT * FROM eventos WHERE id="+id , "SELECT");
try{
while(rs.next()){
response.setContentType("image/png");
System.out.println(rs.getBytes("foto"));
response.getOutputStream().write(rs.getBytes("foto"));
response.reset();
response.setContentType("image/png");
// Write image content to response.
response.getOutputStream().write(rs.getBytes("foto"));
}
bd.closeConnection();
}catch(Exception e){
System.out.println("Error cogiendo foto");
}
}
TXTファイルiは、以下の内容を取得として、私は、MySQLからBLOBファイルを保存すると
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
Part foto = request.getPart("foto");
...
byte[] data = new byte[(int) foto.getSize()];
foto.getInputStream().read(data, 0, data.length);
bd.exQuery("UPDATE eventos SET foto = '"+data+"' WHERE titulo='"+titulo+"';", "UPDATE");
bd.closeConnection();
...
}
:画像をアップロードする
<form action="addevent" method="post" enctype="multipart/form-data">
...
<div class="form-group">
<label for="foto">Image</label>
<input name="foto" id="imagen" type=file accept=".jpg, .jpeg, .png">
</div>
...
</form>
そしてaddeventサーブレット・コード:画像をアップロードする
JavaのJSP:
[[email protected]
[[email protected]
...
私がtxtとして保存すると私はいくつかの文字を取得します...このコードでは、画像をアップロードしてsrcで見ることができません。私は間違って何をしているのかわかりませんが、これはうまくいきません...
ありがとうございます!
'のResultSet RSを= bd.exQueryは(+ id' < "ID = EventosのSELECT * FROM" - - SQLインジェクションが起こるのを待っています... – fge
@fge私はSQLインジェクションがそこで起こる可能性があることを知っていますが、これは生産に置かれないので気にしません。 –
@RomanC私はdata.toString()同じ結果です –