自行下载jspSmartUpload.jar

1:目录结构

 JAVA EE之jspSmartUpload上传头像

1:index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="upload.do" method="post" enctype="multipart/form-data">
    选择头像<input type="file" name="myFile">
    <input type="submit" value="上传">
  </form>
  
  </body>
</html>

3:UploadServlet.java

package com.yu;


import com.jspsmart.upload.*;
import org.apache.log4j.Logger;


import javax.servlet.ServletConfig;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.Date;

@WebServlet("/upload.do")
public class UploadServlet extends HttpServlet {
    ServletConfig servletConfig;

//  private static Logger logger = Logger.getLogger(UploadServlet.class);

    @Override
    public void init(ServletConfig config) throws ServletException {
        this.servletConfig=config;
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	 SmartUpload su=new SmartUpload();//1:创建一个SmartUpload对象
         su.initialize(servletConfig,request,response);//2:初始化SmartUpload对象

         su.setAllowedFilesList("png,jpg,jpeg");//3:设置文件上传的限制
         su.setMaxFileSize(3*1024*1024);    //4:设置单个文件最大字节数

         try{
             su.upload();//5:使用upload上传
         }catch (SmartUploadException e){
             e.printStackTrace();
         }

         //6:获取时间,作为文件名
         Date curDate=new Date();
         long d=curDate.getTime();



         //7:获取全部上传文件
         Files files=su.getFiles();
         //8:获取指定位置的文件文件
         File file=files.getFile(0);

         //9;获取文件的后缀名
         String extFile=file.getFileExt();
         //10:获取时间,作为文件名
         String mainFile=String.valueOf(d);
         
         
//      绝对路径
//      String uploadPath =servletConfig.getServletContext().getRealPath("/");
//      服务器的根目录下 /Users/mingkunyu/tool/apache-tomcat-8.5.32/wtpwebapps/Yuu/
         
//      使用相对路径
        String saveUrl="upload/";//此目录需要新建
        String filePath=saveUrl+mainFile+"."+extFile;
//      服务器的upload目录下  /Users/mingkunyu/tool/apache-tomcat-8.5.32/wtpwebapps/Yuu/upload/1540285990824.jpg 

        
//      eclipse重新部署之后,项目状态就会被清空(你的上传图片文件夹就会被删除),但是如果不是重新部署,只是重启服务器的话,你的图片目录还会在。
        String uploadPath =servletConfig.getServletContext().getRealPath("/")+saveUrl;
//      /Users/mingkunyu/tool/apache-tomcat-8.5.32/wtpwebapps/Yuu/upload/
        java.io.File f=new java.io.File(uploadPath);
        if (!f.exists()) {//没有此目录就新建一个目录
	  f.mkdirs();
	 }



        try{
            file.saveAs(filePath); //文件另存到tomcat部署的项目文件夹中,不是当前项目物理位置
        }catch (SmartUploadException e){
            System.out.printf(filePath+"---------------------------------------");
            e.printStackTrace();

        }

//     储存文件名(只是为了展示)
       request.getSession().setAttribute("src",saveUrl+mainFile+"."+extFile);
       request.getRequestDispatcher("/show.jsp").forward(request,response);
    }



}

 3: show.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>  
<style type="text/css">
.file_icon{
  width: 134px;
  height: 134px;
  display: flex;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
</style>

<body>

<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
	/* basePath = http://localhost:8080/项目名称/获取的是服务的访问地址 */
%>

<h1>文件目录以及文件名:${sessionScope.src}</h1>
<h1>服务器地址:<%=basePath %></h1>
<h1>文件地址:<%=basePath %>${sessionScope.src}</h1>

<img alt="" src="<%=basePath %>${sessionScope.src}" class="file_icon">

</body>
</html>

4:效果图

JAVA EE之jspSmartUpload上传头像

 

相关文章:

  • 2021-11-28
  • 2022-02-09
  • 2022-01-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-28
  • 2022-12-23
  • 2021-12-23
  • 2021-10-25
  • 2021-09-10
  • 2021-10-20
相关资源
相似解决方案