上傳圖片時發現一個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格式.