Java Web程序实现将String类型数据转换成JPG图片并存储在文件夹中

前期准备

本文使用的开发环境是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”文件夹下,即可运行。
——————————————————————————
最后贴一下我的个人公众号:微信搜索“茶迁”或扫描下图。平时会在上面更新一些编程相关的文章,欢迎大家关注~
茶迁

猜你喜欢

转载自blog.csdn.net/weixin_46269688/article/details/111308537