上传图片到jsp


这个是将图片上传的数据库

package com.gmt.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.gmt.redis.UploadRedisManager;
/**
 * 上传截图
 * */
public class UploadImage extends HttpServlet {
	
	private static final long serialVersionUID = 1L;
	public static final String UPLOAD = "UPLOAD_IMAGE";
	@SuppressWarnings("unchecked")
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		// 为解析类提供配置信息
		DiskFileItemFactory factory = new DiskFileItemFactory();
		// 创建解析类的实例
		ServletFileUpload sfu = new ServletFileUpload(factory);
		// 开始解析
		sfu.setFileSizeMax(1024*400);
		// 每个表单域中数据会封装到一个对应的FileItem对象上
		try {
			List<FileItem> items = sfu.parseRequest(request);
			// 区分表单域
			StringBuffer imageName = new StringBuffer(UPLOAD);
			long id  = 0;
			long times = 0;
			int goodId = 0;
			for (int i = 0; i < items.size(); i++) {
				FileItem item = items.get(i);
				InputStream input = item.getInputStream();
			 	byte imageArray[] = new byte[input.available()];
			 	input.read(imageArray);
			 	switch (i) {
				case 0: //通过i获取第几个标签,并分出玩家id  图片id  上传时间   剩余的都是图片
						//i的值的获取顺序就是在jsp页面标签从上到下的顺序,往下依次类推
						//如果不按照顺序的话,可能会存在数据的类型错误
					String roleId = new String(imageArray);
					id = Long.parseLong(roleId);
					System.out.println(roleId);
					imageName.append(roleId);
					continue;
				case 1:
					String goodsId = new String(imageArray);
					goodId = Integer.parseInt(goodsId);
					System.out.println(goodsId);
					imageName.append(goodsId);
					continue;
				case 2:
					String time = new String(imageArray);
					System.out.println(time);
					times = Long.parseLong(time);
					imageName.append(time);
					continue;
			 	}
			 	UploadRedisManager.addUploadImage(imageName.toString(), imageArray);
			 	com.gmt.redis.UploadImage.updateShoopingState(id,times,goodId);
			 	ServletContext application =this.getServletContext();    //this是这个页面
				RequestDispatcher rd = application.getRequestDispatcher("/success");
				rd.forward(request, response);
			}
		} catch (Exception e) {
			ServletContext application =this.getServletContext();    //this是这个页面
			RequestDispatcher rd = application.getRequestDispatcher("/fail");
			rd.forward(request, response);
		}
	}
}

注:上面的方法是将jsp的图片通过流传到这个方法,然后根据jsp页面标签的顺序,依次获取图片的上传信息,然后再将图片转成数组通过数据库的连接方法中的添加数据的方法将图片放到数据库中




jsp页面获取图片的标签

<input type="file" id="imgUpload" name="imgUpload"/>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值