Le programme Web Java convertit les données de type chaîne en images JPG et les stocke dans des dossiers

Préparation

L'environnement de développement utilisé dans cet article est NetBeans, et le fichier ".war" généré est monté et exécuté dans Tomcat, donc NetBeans et Tomcat doivent d'abord être configurés.

Ecriture de fichier servlet

Le code spécifique est le suivant :

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);
    }

}

Remarque :
1. L'adresse du fichier dans le code : "C:\study\Pictures\test.jpg", écrit directement dans un format fixe pour la commodité de la démonstration. Vous pouvez le modifier au besoin.
2. Assurez-vous de fermer le flux d'octets, sinon cela entraînera des erreurs dans le programme côté serveur.
3. Une fois le code écrit, "nettoyez et construisez" le projet pour générer un fichier ".war", puis montez-le dans le dossier "webapps" de Tomcat pour l'exécuter.
———————————————————————————————
Enfin, publiez mon compte public personnel : WeChat recherchez "Chaqian" ou scannez l'image ci-dessous. Habituellement, certains articles liés à la programmation seront mis à jour à ce sujet, et tout le monde est invité à y prêter attention ~
déménagement thé

Guess you like

Origin blog.csdn.net/weixin_46269688/article/details/111308537