上传图片和获取代码如下:package actionimport java.io.Fileimport java.io.IOExceptionimport java.util.Listimport javax.servlet.Servletimport javax.servlet.ServletExceptionimport javax.servlet.http.HttpServletimport javax.servlet.http.HttpServletRequestimport javax.servlet.http.HttpServletResponseimport org.apache.commons.fileupload.FileItemimport org.apache.commons.fileupload.FileUploadExceptionimport org.apache.commons.fileupload.disk.DiskFileItemFactoryimport org.apache.commons.fileupload.servlet.ServletFileUploadpublic class FileUploadAction extends HttpServlet implements Servlet{public FileUploadAction() {}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response)}//action请求自动跳转到这里(配置
文件配置)@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {DiskFileItemFactory factory = new DiskFileItemFactory()ServletFileUpload upload = new ServletFileUpload(factory)List<FileItem>itemstry {items = upload.parseRequest(request)//参数是HttpServletRequest对象for (FileItem item : items){//遍历所有客户端提交的参数(包括文件域)if(item.isFormField()){String key=item.getFieldName()String value=item.getString()}else{String key = item.getFieldName()//取出文件域的键 String value = item.getName()//取出文件域的值 long fileLen = item.getSize()//取出
上传文件的尺寸 String mimeType = item.getContentType()//取出
上传文件的类型 File f=new File("E:\\test\\")//文件地址(上传后服务器硬盘地址) f.mkdirs() item.write(new File(f+"\\"+value))//保存上传的文件到服务器本地 String dizhi=f+"\\"+value// boolean fag= excelaction.ExcelIinput(f+"\\"+value)response.sendRedirect("/g-ecis/excelout.do?method=ExcelIinput&dizhi="+dizhi)//这里是重新向(指定业务需求,其他人可以忽略删除)}}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace()} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace()}}}上传成功后图片是保存在Java服务器上的。可以直接用File file=new File("图片上传保存的地址")获取。如果图片只是需要上传后直接永久显示或者动态显示在网页,可以通过Java代码传递图片工程地址到页面。页面能直接显示。如果后台获取到其他网站或服务器上的图片这涉及到网络编程。具体操作目前我暂时没有用到。
页面里你用uploadify或jquery之类的随意。
后台spring配置文件applicationContext.xml中配置
<!-- 限制上传文件尺寸,限制为5MB -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5242880"/>
</bean>
controller的方法定义类似于,如果不一定需要上传文件的话,最好再加上if(!logo.isEmpty())的判断
@RequestMapping(value="/upload")
public ModelAndView editSoftware(HttpServletRequest request,@RequestParam(required=false) MultipartFile logo){
ModelAndView view=new ModelAndView()
//定义上传路径
String path=request.getSession().getServletContext().getRealPath("/resources/upload/")
//获取上传文件的文件名
String fileName=logo.getOriginalFilename()
File file=new File(path, fileName)
try {
//保存文件
FileUtils.copyInputStreamToFile(logo.getInputStream(), file)
} catch (IOException e) {
e.printStackTrace()
}
view.setViewName("")
return view
}