This is the image that causes an errorJPEG文件結構無效:兩個SOI標記錯誤?
我有這個問題,我嘗試了我所知道的一切,但沒有任何工作。 我想通過套接字從數據庫發送多個圖像(時間的一個圖像)到客戶端應用程序,有時一切正常,但有時它聲明這個「無效的JPEG文件結構:兩個SOI標記」錯誤?
客戶端:
for(User user : users){
int cmpt=0;
byteToread =in.readInt();
bytesOut=new ByteArrayOutputStream();
bos = new BufferedOutputStream(bytesOut);
while (byteToread >cmpt) {
cmpt = in.read(dataEntre);
bos.write(dataEntre, 0, cmpt);
bos.flush();
byteToread-=cmpt;
}
BufferedImage bi = ImageIO.read(new ByteArrayInputStream(bytesOut.toByteArray()));
user.setPhoto(new ImageIcon(bi));
System.out.println("------------------end");
}
bos.close();
bytesOut.close();
服務器端:
InputStream input =null;
Statement myStmt = null;
ResultSet myRs = null;
BufferedInputStream bis=null;
try {
myStmt = Conn.createStatement();
myRs = myStmt.executeQuery("select Photo from users order by Name");
byte[] buffer;
int k =1;
while (myRs.next()) {
input=myRs.getBinaryStream("Photo");
bis = new BufferedInputStream(input);
buffer = new byte[1024];
try {
int byteToread = 0;
int cmpt=0;
byteToread=input.available();
out.writeInt(byteToread);
out.flush();
int i=0;
while (byteToread>cmpt) {
cmpt = bis.read(buffer);
out.write(buffer, 0, cmpt);
out.flush();
byteToread -= cmpt;
}
} catch (IOException ex) {
return ;
}
}
這個問題剛剛出現最近,我的申請工作了快2個月正常,但現在不知從哪兒 –
這個錯誤這可能是2個月的圖像,你使用沒有觸發這個問題。 這個問題並不完全清楚。另外建議鏈接一個圖像,導致此失敗,以防有人想要自己測試。 (假設圖像沒有版權) – Joeblade
好吧,我會感謝你,那麼我寫的代碼怎麼樣,特別是客戶端 –