CSDN一個bug

上傳圖片時發現一個bug


1,2,3都是同一張圖.但是上傳時1,2出現了問題.

後檢查了下圖片格式原因是上傳圖片後綴爲.jpg.而查看文件頭卻是png


所以導致文件上傳報錯.將文件後綴改爲png後,錯誤消失.


總結:

根據經驗,實際問題出在圖片上傳時沒有正確的判斷圖片格式(如讀取文件頭),而是武斷判斷文件後綴做處理.

而根據Java的api,實際上並不需要判斷這些.你只需要讀成文件流,然後根據你想轉成的格式直接導出就可以了.

// 創建臨時文件
String fileName = sourceFile.getName();
tempFile = File.createTempFile(fileName.substring(0, fileName.lastIndexOf(DOT)), PNG_SUFFIX);
ImageIO.write(imageBuffer, PNG, tempFile);

以上內容爲將圖片流內容重新寫爲png格式.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章