1. 上傳
userAdd.jsp
<html:form action="user.do" method="post" enctype="multipart/form-data">
------------------------
<tr>
<td>相片:</td>
<td><html:file property="pic"></html:file></td>
</tr>
------------------------
<tr>
<td>相片:</td>
<td><html:file property="pic"></html:file></td>
</tr>
UserAction.java
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
String username = userForm.getName();
String userpass = userForm.getPassword();
FormFile pic = userForm.getPic();
String url = "E:\\UserPic\\"+pic.getFileName();
if(pic != null){
try {
FileOutputStream fos = new FileOutputStream(url);
fos.write(pic.getFileData());
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
User user = new User();
user.setName(username);
user.setPassword(userpass);
user.setPic(pic.getFileName());
userService.save(user);
return mapping.findForward("success");
}
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
String username = userForm.getName();
String userpass = userForm.getPassword();
FormFile pic = userForm.getPic();
String url = "E:\\UserPic\\"+pic.getFileName();
if(pic != null){
try {
FileOutputStream fos = new FileOutputStream(url);
fos.write(pic.getFileData());
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
User user = new User();
user.setName(username);
user.setPassword(userpass);
user.setPic(pic.getFileName());
userService.save(user);
return mapping.findForward("success");
}
success.jsp
<logic:iterate id="user" name="clUsers">
<tr>
<td>
<bean:write name="user" property="name" />
</td>
<td>
<bean:write name="user" property="password" />
</td>
<td>
<html:link href="/ssh2/user.do?methodCode=downLoad&filePath=${user.pic}">下載</html:link>
</td>
<td>
<html:multibox property="multibox">${user.id}</html:multibox>
</td>
</tr>
</logic:iterate>
<tr>
<td>
<bean:write name="user" property="name" />
</td>
<td>
<bean:write name="user" property="password" />
</td>
<td>
<html:link href="/ssh2/user.do?methodCode=downLoad&filePath=${user.pic}">下載</html:link>
</td>
<td>
<html:multibox property="multibox">${user.id}</html:multibox>
</td>
</tr>
</logic:iterate>
2 . 下載
UserAction.java
public ActionForward downLoad(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
String fileName = request.getParameter("filePath");
//String fileName = new String(fileName1.getBytes("ISO-8859-1"),"GBK");//處理URL傳遞中文時產生亂碼
//System.out.println("fileName++++++++++"+fileName);
String filePath = "E:\\UserPic\\"+fileName;
File file = new File(filePath);
try {
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
fileName = URLEncoder.encode(fileName,"UTF-8");//這裏是GBK的話,fileName將是%CE%C4%B1重中形式
//fileName = new String(fileName.getBytes("UTF-8"),"GBK");
System.out.println("fileName"+fileName);
response.reset();
response.setContentType("UTF-8");
response.setContentType("Application/x-msdownload");
response.setHeader("Content-Disposition", "p_w_upload;fileName="+fileName);
response.setHeader("Content-Length", String.valueOf(bis.available()));
int bytesRead = 0;
byte[] buffer = new byte[1024];
while((bytesRead = bis.read(buffer))!= -1){
bos.write(buffer,0,bytesRead);
}
bos.flush();
bos.close();
bis.close();
os.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
String fileName = request.getParameter("filePath");
//String fileName = new String(fileName1.getBytes("ISO-8859-1"),"GBK");//處理URL傳遞中文時產生亂碼
//System.out.println("fileName++++++++++"+fileName);
String filePath = "E:\\UserPic\\"+fileName;
File file = new File(filePath);
try {
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
fileName = URLEncoder.encode(fileName,"UTF-8");//這裏是GBK的話,fileName將是%CE%C4%B1重中形式
//fileName = new String(fileName.getBytes("UTF-8"),"GBK");
System.out.println("fileName"+fileName);
response.reset();
response.setContentType("UTF-8");
response.setContentType("Application/x-msdownload");
response.setHeader("Content-Disposition", "p_w_upload;fileName="+fileName);
response.setHeader("Content-Length", String.valueOf(bis.available()));
int bytesRead = 0;
byte[] buffer = new byte[1024];
while((bytesRead = bis.read(buffer))!= -1){
bos.write(buffer,0,bytesRead);
}
bos.flush();
bos.close();
bis.close();
os.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}