1. 程式人生 > >java servlet 得到上傳過來的圖片二進位制流

java servlet 得到上傳過來的圖片二進位制流

工作中做demo的時候碰到的問題,應用伺服器使用webSphere,有些上傳外掛和它有衝突,無奈,只能用input type=file的傳統上傳控制元件+  servlet來實現圖片的上傳,在後臺解析二進位制流,但生成的圖片無法開啟,找到的原因是二進位制的內容的問題,終於解決了,和大家共進步。

JSP程式碼

當encType指定為multipart/form-data,表示表單以2進位制的形式傳送,所以接收時需要使用request.getInputStream()形式讀取,使用OutputStream想本地寫入。但是需要注意,採用這種原始的方式寫入檔案時,你會發現被寫入的檔案內容前4行並非是讀取檔案的真正內容,從第四行開始才是正文資料。第二行是檔案路徑以及名稱。所以通常的做法是,先將檔案寫入臨時檔案中,然後再採用RandomAccessFile讀取臨時檔案的第四行以後部分。寫入到目標檔案中。