Java Web程式實現將String型別資料轉換成JPG圖片並存儲在資料夾中
阿新 • • 發佈:2020-12-18
技術標籤:Android開發javatomcatservlethttpandroid
目錄
前期準備
本文使用的開發環境是NetBeans,生成的“.war”檔案是掛載在Tomcat中執行的,因此需要先配置好NetBeans以及Tomcat。
Servlet檔案編寫
具體程式碼如下:
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java. io.PrintWriter;
import java.util.Base64;
import java.util.HashMap;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
/**
*
* @author admin
*/
public class ImageServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 設定響應內容型別
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
try (PrintWriter out = response.getWriter()) {
//獲得傳輸來的圖片資料(String型別形式)
String image = request.getParameter("Image").trim();
Base64.Decoder decoder = Base64.getMimeDecoder();
byte[] byteArray = decoder.decode(image);
ByteArrayInputStream byStream = new ByteArrayInputStream(byteArray);
BufferedImage bil=ImageIO.read(byStream);
//將輸出流轉換為JPG格式
ImageIO.write(bil, "jpg", new File("C:\\study\\Pictures\\test.jpg"));
//關閉位元組流
byStream.close();
//向客戶端回送成功標誌
java.util.Map<String, String> params = new HashMap<>();
JSONObject jsonObject = new JSONObject();
params.put("InsertResult", "success");
jsonObject.put("params", params);
out.write(jsonObject.toString());
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
}
注:
1.程式碼中的檔案地址:“C:\study\Pictures\test.jpg”,為了方便演示直接寫成固定格式。大家可以根據需要進行修改。
2.一定要記得關閉位元組流,否則會導致伺服器端程式出錯。
3.程式碼編寫完成後,將該專案“清理並構建”,生成“.war”檔案,然後掛載到Tomcat中的“webapps”資料夾下,即可執行。