日期:2014-05-20 浏览次数:20917 次
<%@ 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>
------解决方案--------------------
Servlet类的
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(); } } }