文件,图片上传
来源:互联网 发布:矩阵的微分运算法则 编辑:程序博客网 时间:2024/06/03 13:47
最近看到了以前写的一个代码,使用ServletFileUpload上传文件或者图片,然后想想,代码都快丢了,就留个博客记录下吧!
前端index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>文件上传</title></head><body><form action="LunboAction" method="post" enctype="multipart/form-data">本地目录:<input type="file" name="uploadFile" ><input type="submit" value="上传头像"></form></body></html>Servlet类:LunboAction中的方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session = request.getSession();// 判断上传表单是否为multipart/form-data类型 if(ServletFileUpload.isMultipartContent(request)) {try { // 1. 创建DiskFileItemFactory对象(文件处理工厂),设置缓冲区大小和临时文件目录DiskFileItemFactory factory = new DiskFileItemFactory();System.out.println("默认的临时文件夹:"+System.getProperty("java.io.tmpdir"));// 2. 创建ServletFileUpload对象(文件上传处理器),并设置上传文件的大小限制。 ServletFileUpload sfu = new ServletFileUpload(factory);sfu.setSizeMax(10*1024*1024);//10Msfu.setHeaderEncoding("utf-8");// 3 调用ServletFileUpload.parseRequest方法解析request对象,得到一个保存了所有上传内容的List对象。 List<FileItem> fileItemList = (List<FileItem>)sfu.parseRequest(new ServletRequestContext(request)); Iterator<FileItem> fileItems = fileItemList.iterator(); // 4. 遍历list,每迭代一个FileItem对象,调用其isFormField方法判断是否是上传文件 while(fileItems.hasNext()) { FileItem fileItem = fileItems.next(); if(fileItem.isFormField()) { String name = fileItem.getFieldName(); String value = fileItem.getString("utf-8"); System.out.println(name+"="+value); } else { //信息的文件格式 String fileName = fileItem.getName(); System.out.println("原文件名:"+fileName); String suffix = fileName.substring(fileName.lastIndexOf('.')); System.out.println("扩展名:"+suffix); //新文件名 String newFileName = new Date().getTime()+suffix; System.out.println("新文件名:"+newFileName); //5调用fileItem的write方法,写入文件 File file = new File("D:/mywork/20170814ImageUpload/WebContent/touxiang/"+newFileName); System.out.println(file.getAbsolutePath()); fileItem.write(file); //6,调用fileItem的delete方法删除临时文件 fileItem.delete(); //7 存到数据库,保存源文件名称2,保存相对路径 try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/test";String name = "root";String password = "root";Connection conn = DriverManager.getConnection(url, name, password);String Sql = "INSERT INTO t_touxiang(image_path,user_id,old_name)VALUES(?,?,?)";PreparedStatement ps = conn.prepareStatement(Sql);ps.setString(1, newFileName);ps.setInt(2, 1111);ps.setString(3, fileName);int rows = ps.executeUpdate();if(rows > 0) {session.setAttribute("image_name", fileName);session.setAttribute("image_path","touxiang/"+newFileName);response.sendRedirect(request.getContextPath()+"/readPicture");} else {response.sendRedirect("http://www.baidu.com");}} catch (Exception e) {} } }} catch (Exception e) {}}}然后后台的Servlet读取图片信息
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String result = null;try {int id =2;String sqlString="SELECT image_path FROM t_touxiang WHERE id=?";Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/test";String name = "root";String password = "root";Connection conn = DriverManager.getConnection(url, name, password);PreparedStatement ps = conn.prepareStatement(sqlString);ps.setInt(1, id);ResultSet urs = ps.executeQuery();while(urs.next()) {System.out.println(urs.getString("image_path"));result = urs.getString("image_path");}} catch (Exception e) {System.out.println(e.getMessage());}request.setAttribute("txt", result);request.getRequestDispatcher("/ShowImage.jsp").forward(request, response);}前台展示图片,ShowImage.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title><%String path = (String)request.getAttribute("txt");%></head><body> <span style="white-space:pre"></span><div> <form action="" method="post" enctype="multipart/form-data"> <img src="./touxiang/<%=path %>" width="200" height="200"> </form> </div> </body></html>
阅读全文
0 0
- 文件上传,图片上传案例
- html5图片上传【文件上传】
- 上传文件,图片代码
- 图片文件上传代码
- 文件、图片上传
- 文件图片上传.JSP
- 文件或图片上传
- 文件上传(图片)
- 图片文件上传
- 图片文件上传
- 上传文件、图片
- 图片文件上传
- 上传图片文件
- 文件图片上传控件
- socket上传图片文件
- 图片文件的上传
- HttpURLConnection上传文件(图片)
- java上传图片文件
- nyoj 76超级台阶
- idea中文乱码终极解决方案
- 剑指offer第一题:二维数组中的查找解题报告
- 深入理解JavaScript闭包概念
- nfs
- 文件,图片上传
- NFS
- 理解MySQL——索引与优化
- Find a way
- HDU 2571 命运——DP
- Deep Learning---caffe模型参数量(weights)计算
- 小光棍数
- nginx 进程数设置
- 第一篇CSDN博客