1 xxxxx-servlet.xml 部分
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
2 html部分
<form id="contentform" method="post" enctype="multipart/form-data" action="<%=request.getContextPath() %>/infocontentsave.cmd">
<input type="hidden" id="saveRootPath" name="saveRootPath" value="D:\MyProject\EasyInfo\WebContent" />
<input type="hidden" id="typeid" name="typeid" value="<%=request.getParameter("TypeId") %>"/>
<input type="hidden" id="contentid" name="contentid" value="${TInfocontent.contentid }"/>
<table border=1 bordercolor=green cellpadding=0 cellspacing=0>
<tr><td>内容标题</td><td><input type="textbox" id="title" name="title" value="${TInfocontent.title }" size=60/></td></tr>
<tr><td>内容</td><td><textarea id="contentText" name="contentText" cols="60" rows="10">${TInfocontent.contentText }</textarea></td></tr>
<tr><td>内容图片</td><td>
<img src="<%=request.getContextPath() %>/${TInfocontent.contentImage }"><br>
<input type="textbox" id="contentImageOld" name="contentImageOld" size=40 value="${TInfocontent.contentImage }"/><br>
<input type="file" id="contentImage" name="contentImage" size="60"/></td></tr>
<tr><td>地址图片</td><td>
<img src="<%=request.getContextPath() %>/${TInfocontent.addressImage }"><br>
<input type="textbox" id="addressImageOld" name="addressImageOld" size=40 value="${TInfocontent.addressImage }"/><br>
<input type="file" id="addressImage" name="addressImage" size="60" /></td></tr>
<tr><td>显示顺序</td><td><input type="textbox" id="showorder" name="showorder" value="${TInfocontent.showorder }"/></td></tr>
<tr><td> </td>
<td><br><a href="javascript:Save();">递交</a>
<a href="infocontent.cmd?TypeId=<%=request.getParameter("TypeId") %>">取消</a> <br><br>
</td></tr>
</table>
</form>
3 Controller部分
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class InfoContentSaveController implements Controller
{
InfoContentServiceImpl infoContentService;
public InfoContentServiceImpl getInfoContentService()
{
return infoContentService;
}
public void setInfoContentService(InfoContentServiceImpl infoContentService)
{
this.infoContentService = infoContentService;
}
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception
{
ModelAndView mv=new ModelAndView();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
String saveRootPath = request.getRealPath("/");
// multipartRequest.getParameter("saveRootPath").trim();// "D:\\MyProject\\EasyInfo\\WebContent" ;
int typeid= Integer.parseInt(multipartRequest.getParameter("typeid")) ;
int contentid=Integer.parseInt(multipartRequest.getParameter("contentid").trim());
String title = multipartRequest.getParameter("title").trim();
String contentText = multipartRequest.getParameter("contentText").trim();
System.out.println("typeid:["+typeid+"] contentid:["+contentid+"] title:["+title+"] contentText:["+contentText+"]");
SimpleDateFormat dateFm = new SimpleDateFormat("yyyyMMdd-hhmmss"); //格式化当前系统日期
String contentImage =multipartRequest.getParameter("contentImageOld").trim();
String imgf1=dateFm.format(new java.util.Date());
if(multipartRequest.getFile("contentImage")!=null)
{
MultipartFile file = multipartRequest.getFile("contentImage");
String temp= file.getOriginalFilename().trim();
if(!temp.equals(""))
{
contentImage="images/"+imgf1 +"-1-" + temp ;
//+temp.substring( temp.lastIndexOf("\\") );
String savefilename= saveRootPath + "\\"+ contentImage.replace("/", "\\") ;
System.out.println("contentImage: "+savefilename);
String checkPath=savefilename.substring(0,savefilename.lastIndexOf("\\"));
System.out.println("contentImage: "+checkPath);
File d=new File(checkPath);
if(d.exists()){//检查Sub目录是否存在
System.out.println(checkPath+" 存在");
}else{
d.mkdir();//建立Sub目录
System.out.println(checkPath+" 目录不存在,已建立");
}
// 获得输入流:
InputStream input = null;
FileOutputStream out = null;
String filename = file.getOriginalFilename();
input = file.getInputStream();
out= new FileOutputStream( savefilename );
byte[] bytes=new byte[10240];
int c;
while((c=input.read(bytes))!=-1)
{
out.write(bytes,0,c);
}
out.flush();
out.close();
input.close();
}
}
String addressImage =multipartRequest.getParameter("addressImageOld").trim();
String imgf2=dateFm.format(new java.util.Date());
if(multipartRequest.getFile("addressImage")!=null)
{
MultipartFile file = multipartRequest.getFile("addressImage");
String temp=file.getOriginalFilename().trim();
if(!temp.equals(""))
{
addressImage="images/"+imgf2 +"-2-" + temp ;
//+temp.substring( temp.lastIndexOf("\\") );
String savefilename=saveRootPath + "\\"+ addressImage.replace("/", "\\") ;
System.out.println("addressImage: "+savefilename);
String checkPath=savefilename.substring(0,savefilename.lastIndexOf("\\"));
File d=new File(checkPath);
System.out.println("addressImage: "+checkPath);
if(d.exists()){//检查Sub目录是否存在
System.out.println(checkPath+" 存在");
}else{
d.mkdir();//建立Sub目录
System.out.println(checkPath+" 目录不存在,已建立");
}
// 获得输入流:
InputStream input = null;
FileOutputStream out = null;
String filename = file.getOriginalFilename();
input = file.getInputStream();
out= new FileOutputStream( savefilename);
byte[] bytes=new byte[10240];
int c;
while((c=input.read(bytes))!=-1)
{
out.write(bytes,0,c);
}
out.flush();
out.close();
input.close();
}
}
int showorder =Integer.parseInt( multipartRequest.getParameter("showorder").trim());
if(title.equals("") || contentText.equals(""))
{
}
else
{
ServletContext servletContext = request.getSession().getServletContext();
WebApplicationContext wac =WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
InfoContentServiceImpl cs=(InfoContentServiceImpl)wac.getBean("infoContentService");
boolean b=cs.addNewInfoContent(contentid,typeid,title, contentText,contentImage,addressImage, showorder);
if(b)
{
response.sendRedirect( request.getContextPath() + "/infocontent.cmd?TypeId="+typeid);
}
else
{
response.getWriter().println("<html><body><script>history(-1);</script></body></html>");
}
}
return mv;
}
}