fileupload图片上传到指定文件夹

用fileupload上传图片到工目录。并用时间格式重命名文件,然后把文件名写进数据库。供前后台调用

.前台JSP 表单提交 重点:method="post" enctype="multipart/form-data

<form name = "myform" action = "imgupload.action?name=<%=saler.getName()%>" method = "post"   enctype = "multipart/form-data"   class = "myform">
	<span>上传或修改图片,1M以内!</span>
	<input type = "file" name = "myfile"><br>
	<input type = "submit" name = "submit" value = "   确 定   "/>
</form>

2.后台servlet         请无视对你无用
 

packagefileupload;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;  
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 util.DBUtil;

@SuppressWarnings("serial")
publicclass Upload extends HttpServlet {    
   private String uploadPath = "C:\\Users\\lonec\\OneDrive\\EatIt\\EatIt\\WebRoot\\images"; // 上传文件的目录 
   private String tempPath  = "C:\\Users\\lonec\\OneDrive\\EatIt\\EatIt\\WebRoot\\images\\buffer"; // 临时文件目录   
   File tempPathFile;     
   @SuppressWarnings("unchecked")    
   publicvoid doPost(HttpServletRequest request, HttpServletResponse response)           
   throws IOException, ServletException {
      request.setCharacterEncoding("utf-8");
      response.setContentType("text/html;charset=utf-8");
      PrintWriter out = response.getWriter();
      try {           
         // Create a factory for disk-based fileitems           
         DiskFileItemFactory factory = new DiskFileItemFactory();            
         // Set factory constraints           
         factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是 4kb           
         factory.setRepository(tempPathFile); // 设置缓冲区目录           
         // Create a new file upload handler           
         ServletFileUpload upload = new ServletFileUpload(factory);
         upload.setHeaderEncoding("utf-8");       
         // Set overall request size constraint           
         upload.setSizeMax(1048576); // 设置最大文件尺寸,这里是 4MB         
         List<FileItem> items = upload.parseRequest(request);// 得到所有的文件            
         Iterator<FileItem> i = items.iterator();
         String imgnameString0=null;
         if (i.hasNext()) {              
            FileItem fi = (FileItem) i.next();              
            String fileName = fi.getName();
            if (fileName != null&&(fileName.endsWith(".jpg")||fileName.endsWith(".JPG")||fileName.endsWith(".png")||fileName.endsWith(".PNG"))) {
                System.out.println(fi);
                DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                Calendar calendar = Calendar.getInstance();
                String imageName = df.format(calendar.getTime());
                String endname=imageName+".jpg";    // 统一转化成jpg文件  
                System.out.println(imageName);
                imgnameString0=endname;              
                File savedFile = new File(uploadPath,endname);
                System.out.println(savedFile);
                fi.write(savedFile);                
            }else{
                out.println("<script>alert('请上传正确的文件类型!');history.go(-1);</script>");
           }           
         }    

         //写进数据库

         String[] imgnameString = imgnameString0.split("\\.");
         System.out.println(imgnameString[0]);      
         Connection conn=null;
         Statement ps=null;
         String salername=request.getParameter("name");
         byte[] sn = salername.getBytes("iso-8859-1");
         salername = new String(sn,"utf-8");        
         String sqlString=" UPDATE EatIt_Saler SET imgName ='"+imgnameString[0]+"' WHERE name ='"+salername+"'";
         try {
            conn=DBUtil.getConnection();
            ps=conn.createStatement();
             ps.executeUpdate(sqlString)          
         } catch (Exception e) {
            e.printStackTrace();
         }        
         //成功后页面跳转,并且刷新
        String page="published.do?name="+salername;    //published.do?name=<%=saler.getName()%>setTimeout();
        out.println("<script>alert('上传成功!');  window.location.href=\""+page+"\"; </script>");//页面带参数跳转   
         } catch (Exception e) {      
            // 可以跳转出错页面     
           System.out.print("失败:图片大小超过1M! ");
            out.println("<script>alert('图片大小超过1M!');history.go(-1);</script>");
            /*e.printStackTrace();        */
         }   
   }      
   publicvoid init() throws ServletException {      
      File uploadFile = new File(uploadPath);       
      if (!uploadFile.exists()) {
         uploadFile.mkdirs();       
      }       
      File tempPathFile = new File(tempPath);        
      if (!tempPathFile.exists()) {          
         tempPathFile.mkdirs();       
      }   
   }
}

3.servlet 配置 web.xml文件 、无用的部分已经删除


<?xml version="1.0"encoding="UTF-8"?>
<web-app version="2.5"xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <display-name>file</display-name>
   <servlet>
     <servlet-name>Upload</servlet-name>
     <servlet-class>fileupload.Upload</servlet-class>
  </servlet>
   <servlet-mapping>
     <servlet-name>Upload</servlet-name>
     <url-pattern>/imgupload.action</url-pattern>
  </servlet-mapping>
</web-app>



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值