62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class GetImageServlet extends HttpServlet{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletConfig config = this.getServletConfig();
SmartUpload mySmartUpload = new SmartUpload();//上传图片的工具类
mySmartUpload.initialize(config, request, response);// 初始化
try {
mySmartUpload.upload();// 上传
com.jspsmart.upload.File f1 = mySmartUpload.getFiles().getFile(0);//因为只一次只上传一个图片,所以就getFile(0),如果多次还要迭代遍历
String imageName = f1.getFileName();//得到图片的名字
int idx = imageName.lastIndexOf(".");
String imageType = imageName.substring(idx, imageName.length());// 得到图片的类型,比如是 .jpg
Calendar cal=Calendar.getInstance(); //处理时间的一个类
int year = cal.get(Calendar.YEAR);// 得到当前年
int month = cal.get(Calendar.MONTH )+1;//月
int day = cal.get(Calendar.DAY_OF_MONTH);//日
int hour = cal.get(Calendar.HOUR_OF_DAY);//小时
String newImageName = String.valueOf(System.currentTimeMillis());//图片的新名字,最好不要用随机数,因为随机数也可能有一样的
String path = "E:"+File.separator+"image"+File.separator+year+File.separator+month+File.separator+day+File.separator+hour;
File file = new File(path);
if(!file.exists()){//如果不存在这个路径
file.mkdirs();//就创建
}
String imagePath = path+File.separator+newImageName+imageType;//已经保存的图片的绝对路径,下面要对图片重新命名
//生成保存图片的路径,File.separator是个跨平台的分隔符
f1.saveAs(imagePath);// 保存图片到这个目录下
} catch (SmartUploadException e) {
e.printStackTrace();
}
}
}
<%@ 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>图片上传</title>
</head>
<body>
<center>
<form action="${pageContext.request.contextPath }/servlet/GetImageServlet" enctype="multipart/form-data" method="post">
选择图片:<input type="file" name="image" /><br /><br />
<input type="submit" value=" 提 交 " /> <input type="reset" value=" 重 置 "/>
</form>
</center>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Struts2Web</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>getImageServlet</servlet-name>
<servlet-class>com.web.GetImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getImageServlet</servlet-name>
<url-pattern>/servlet/GetImageServlet</url-pattern>
</servlet-mapping>
</web-app>