• JAVA上传文件到数据库


     前端代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>在此处插入标题</title>
    </head>
    <body>
       <!--enctype="multipart/form-date" 该属性用于服务文件上传-->    <form action="upload.do" method="post" enctype="multipart/form-data"> <p>Upload your song in MP3 format:</p> <input type="file" name="file" /><br /> <input type="submit" value="Upload" /> </form> </body> </html>

    后台代码

    package demo;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.MultipartConfig;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.Part;
    
    /**
     * Servlet implementation class UP
     */
    @MultipartConfig 
    @WebServlet("/upload.do")
    public class UP extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	/**
    	 * 从part对象里,解析出文件名
    	 * @param part
    	 * @return
    	 */
    	private String getFilename(Part part) {
    		String header   = part.getHeader("content-disposition");
    		String filename = header.substring(header.indexOf("filename="")+10,header.lastIndexOf("""));
    		return filename;
    	}
    	
        public UP() {
        	super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		Part part = request.getPart("file");//获取上传的文件对象
    		saveToDb(part);//调用方法保存文件到数据库
    	}
    
    	private void saveToDb(Part part) {
    		
    		InputStream in =null;//初始化一个输入流对象
    		String filename = getFilename(part);//调用方法获取文件名
    		
    		try {
    			in = part.getInputStream();//获取文件输入流
    		} catch (IOException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    		
    		String url ="jdbc:mysql://149.129.112.161:3306/shop?useUnicode=true&characterEncoding=utf-8";
    		String user="shop";
    		String password="999999";
    		
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    		} catch (ClassNotFoundException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    		
    		try {
    			Connection connection = DriverManager.getConnection(url,user,password);
    			String sql = "insert into bigtb (name,images) values(?,?) ";
    			PreparedStatement statement = connection.prepareStatement(sql);
    			statement.setString(1, filename);//设置文件名
    			statement.setBinaryStream(2, in);//设置输入流
    			
    			statement.executeUpdate();//处理sql语句
    			
    			statement.close();
    		} catch (SQLException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    		
    	}
    
    }
    

      

  • 相关阅读:
    基础数据类型补充、集合、深浅拷贝
    python中(id,is,==,)小数据池,代码块
    字典:python的基础数据类型
    五四青年节后记
    test
    agl---atumotive grade linux开篇
    传感器
    金字塔原理
    写在2017年底
    C# 输出16进值
  • 原文地址:https://www.cnblogs.com/max-hou/p/10882395.html
Copyright © 2020-2023  润新知