详细代码请参见http://download.csdn.net/detail/honghu549599aaa/4472543(欢迎斧正)
主页 (上传多张图片)
upload.html
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<html><head>
<title>用smartUpload组件实现文件上传</title>
</head>
<body>
<p align="center">用smartUpload组件实现文件上传</p>
<p align="center">请选择要上传的文件:</p>
<FORM METHOD="POST" ACTION="../FileUpload" ENCTYPE="multipart/form-data">
<table width="75%" border="1" align="center">
<tr>
<td><div align="center">1、
<input type="FILE" name="image1" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">2、
<input type="FILE" name="image2" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">3、
<input type="FILE" name="image3" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">4、
<input type="FILE" name="image4" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="上传">
</div></td>
</tr>
</table>
</FORM>
</body>
</html>
2.sevlet(图片上传类)‘
package com.Fly.HBXT.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Fly.HBXT.Service.FileUploadService;
import com.Fly.HBXT.model.UserImage;
import com.jspsmart.upload.*;
public class FileUpload extends HttpServlet {
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("GB2312");
response.setCharacterEncoding("GB2312");
PrintWriter out = response.getWriter();
String kk[] = new String[10];
String iamge1="";
String iamge2="";
String iamge3="";
String iamge4="";
SmartUpload mySmartUpload=new SmartUpload();
// System.out.println("更换后的文件名:" + filename);
ServletContext application = this.getServletContext();
String url = "upload/"; // 应保证在根目录中有此目录的存在(也就是说需要自己建立相应的文件夹)
mySmartUpload.initialize(this.getServletConfig(), request, response);
try {
mySmartUpload.upload();
for (int i=0;i<mySmartUpload.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = mySmartUpload.getFiles().getFile(i);
// 若文件表单中的文件选项没有选择文件则继续
if (file.isMissing()) continue;
String ext = file.getFileExt(); // 取得后缀名
String saveurl = ((ServletContext) application).getRealPath("/")
+ url;
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl += filename + "." + ext; // 保存路径
filename += "." + ext;
System.out.println("filename"+filename);
file.saveAs(saveurl, SmartUpload.SAVE_PHYSICAL);
// 显示当前文件信息
out.println("<TABLE BORDER=1>");
out.println("<TR><TD>表单项名(FieldName)</TD><TD>"+file.getFieldName()+"</TD></TR>");
// kk[i]=(String) file.getFieldName();
kk[i]=filename;
out.println("</TABLE><BR>");
}
System.out.println(kk[0]);
System.out.println(kk[1]);
System.out.println(kk[2]);
System.out.println(kk[3]);
FileUploadService fus=new FileUploadService();
int flag= fus.fileupload(kk);
System.out.println("上传结果"+flag);
List c=fus.findAllPages();
System.out.println("所有图片为"+c);
request.setAttribute("AllUserImages", c);
request.getRequestDispatcher("/FileUpload/showPage.jsp").forward(request, response);
}catch (SmartUploadException e) {
e.printStackTrace();
// TODO: handle exception
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.预览所有图片
showpics.jsp
<%@ page language="java" import="java.util.*,com.Fly.HBXT.model.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
List UserImageList=(List)request.getAttribute("AllUserImages");
Iterator iterator=UserImageList.iterator();
UserImage images=new UserImage();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
img{width: 100;
height: 200;
}
</style>
<base href="<%=basePath%>">
<title>查看所有图片</title>
</head>
<body>
<table>
<%
while(iterator.hasNext()){
images=(UserImage)iterator.next();
%>
<tr>
<td><a href="findUserImageById?id=<%=images.getId()%>"><%=images.getId() %></a></td>
<td> <img alt="暂无图片" src="upload/<%=images.getImages1() %>"></td>
<td> <img alt="" src="upload/<%=images.getImages2() %>"></td>
<td> <img alt="" src="upload/<%=images.getImages3() %>"></td>
<td> <img alt="" src="upload/<%=images.getImages4() %>"></td>
</tr>
<%} %>
</table>
<!--
<FORM METHOD="POST" ACTION="UpdateFileUpload?id=<%=images.getId() %>" ENCTYPE="multipart/form-data">
<table width="75%" border="1" align="center">
<tr>
<td><div align="center">1、
<input type="FILE" name="image1" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">2、
<input type="FILE" name="image2" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">3、
<input type="FILE" name="image3" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">4、
<input type="FILE" name="image4" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="上传">
</div></td>
</tr>
</table>
</FORM>
-->
</body>
</html>
4.根据图片ID查看图片详情
showPageById.java
package com.Fly.HBXT.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Fly.HBXT.Service.FileUploadService;
import com.Fly.HBXT.model.UserImage;
public class findUserImageById extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String id=request.getParameter("id");
FileUploadService fus=new FileUploadService();
try {
UserImage iamge =fus.findUserImageById(Integer.parseInt(id));
request.setAttribute("iamge", iamge);
request.getRequestDispatcher("FileUpload/showPageById.jsp").forward(request, response);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
}
}
5(重要)随心所欲更改图片
showPageById.jsp
<%@ page language="java" import="java.util.*,com.Fly.HBXT.model.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
UserImage images=(UserImage)request.getAttribute("iamge");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
img{width: 100;
height: 200;
}
</style>
<base href="<%=basePath%>">
<title>My JSP 'showPage.jsp' starting page</title>
-->
</head>
<body>
<table>
<tr>
<td> <img alt="" src="upload/<%=images.getImages1() %>"></td>
<td> <img alt="" src="upload/<%=images.getImages2() %>"></td>
<td> <img alt="" src="upload/<%=images.getImages3() %>"></td>
<td> <img alt="" src="upload/<%=images.getImages4() %>"></td>
</tr>
</table>
<FORM METHOD="POST" ACTION="UpdateFileUpload?id=<%=images.getId() %>" ENCTYPE="multipart/form-data">
<table width="75%" border="1" align="center">
<tr>
<td><div align="center">1、
<input type="FILE" name="image1" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">2、
<input type="FILE" name="image2" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">3、
<input type="FILE" name="image3" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">4、
<input type="FILE" name="image4" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="上传">
</div></td>
</tr>
</table>
</FORM>
</body>
</html>
6.根据图片ID更新图片
updatePictureById
package com.Fly.HBXT.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Fly.HBXT.Service.FileUploadService;
import com.Fly.HBXT.model.UserImage;
import com.jspsmart.upload.*;
public class UpdateFileUpload extends HttpServlet {
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("GB2312");
response.setCharacterEncoding("GB2312");
PrintWriter out = response.getWriter();
String kk[] = new String[10];
String iamge1="";
String iamge2="";
String iamge3="";
String iamge4="";
SmartUpload mySmartUpload=new SmartUpload();
// System.out.println("更换后的文件名:" + filename);
ServletContext application = this.getServletContext();
String url = "upload/"; // 应保证在根目录中有此目录的存在(也就是说需要自己建立相应的文件夹)
mySmartUpload.initialize(this.getServletConfig(), request, response);
try {
mySmartUpload.upload();
for (int i=0;i<mySmartUpload.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = mySmartUpload.getFiles().getFile(i);
// 若文件表单中的文件选项没有选择文件则继续
if (file.isMissing()) continue;
String ext = file.getFileExt(); // 取得后缀名
String saveurl = ((ServletContext) application).getRealPath("/")
+ url;
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl += filename + "." + ext; // 保存路径
filename += "." + ext;
System.out.println("filename"+filename);
file.saveAs(saveurl, SmartUpload.SAVE_PHYSICAL);
// 显示当前文件信息
out.println("<TABLE BORDER=1>");
out.println("<TR><TD>表单项名(FieldName)</TD><TD>"+file.getFieldName()+"</TD></TR>");
// kk[i]=(String) file.getFieldName();
kk[i]=filename;
out.println("</TABLE><BR>");
}
FileUploadService fus=new FileUploadService();
String id=request.getParameter("id");
int flag= fus.updateUserImage(kk,Integer.parseInt(id));
System.out.println("修改结果"+flag);
List UserImageList=fus.findAllPages();
// UserImage c=
request.setAttribute("AllUserImages", UserImageList);
request.getRequestDispatcher("/FileUpload/showPage.jsp").forward(request, response);
}catch (SmartUploadException e) {
e.printStackTrace();
// TODO: handle exception
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
}