javaweb数据库存储图片和显示图片

一、基本概述

之前的数据库存储的都是基本类型,但是我们如果需要获取图片怎么办?我们可以把图片用一个varchar来保存它的名字和类型。实际操作如下:

二、基本部署

1,数据库建立
javaweb数据库存储图片和显示图片_第1张图片
2,项目的配置
javaweb数据库存储图片和显示图片_第2张图片

三、介绍与具体代码

1,配置虚拟路径

javaweb数据库存储图片和显示图片_第3张图片
在这里插入图片描述

2.Pictureadd代码

//简化名字
@WebServlet({ "/PictureAdd", "/add" })
//标配
@MultipartConfig
public class PictureAdd extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			//设置获取格式
		request.setCharacterEncoding("utf-8");
		//给定路径
		String basePath = "d:/fileserver";
		//获取一个文件单元
		Part part = request.getPart("picurl");
		//获取文件名字
		String fname = part.getSubmittedFileName();
		//防止重复,特定编码
		String uuid = UUID.randomUUID().toString();
		//获取文件类型
		String suffix = fname.substring(fname.lastIndexOf("."));
		//得到文件名字
		fname = uuid + suffix;
		//加载到指定目录
		part.write(basePath + File.separator + fname);

		Connection conn = DBUtils.getConn();
		Picture picture = new Picture();
		String name = request.getParameter("picname");
		picture.setName(name);
		picture.setImgurl(fname);
		PictureDAO pd = new PictureDAO(conn);
		boolean f = pd.insert(picture);
		//请求转发传值
		request.setAttribute("pname", fname);
		if (f) {
		//跳转到show.jsp页面,显示图片到页面
			request.getRequestDispatcher("show.jsp").forward(request, response);
		} else {
			request.getRequestDispatcher("error.html").forward(request, response);
		}

		try {
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

3,show.jsp具体代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here



<%-- 	 --%>
	//获取请求转发传来的值,显示到页面上
	"/>


四、显示效果

javaweb数据库存储图片和显示图片_第4张图片
javaweb数据库存储图片和显示图片_第5张图片
javaweb数据库存储图片和显示图片_第6张图片
javaweb数据库存储图片和显示图片_第7张图片

五、小结

数据库可以存图片的地址,我们可以通过UUID编码来实现图片的不重复。

你可能感兴趣的:(JAVA)