java使用fileupload接收上传文件

来源:互联网 发布:mac文档怎么转换格式 编辑:程序博客网 时间:2024/06/09 15:49

需要的包是:


java服务接收端:

方法(一)

//上传图片到服务器,并且获得url@RequestMapping("GetPortraitUrl")public @ResponseBodyGetPortraitUrlResponse GetPortraitUrl(HttpServletRequest request) throws Exception{String uploadPath = "f:\\temp"; // 上传文件的目录String tempPath = "f:\\temp\\buffer\\"; //临时文件目录File uploadFile = new File(uploadPath);if (!uploadFile.exists()) {uploadFile.mkdirs();}File tempPathFile= new File(tempPath);if (!tempPathFile.exists()) {tempPathFile.mkdirs();}System.out.println(request.getContentType());GetPortraitUrlResponse rResponse=new GetPortraitUrlResponse();DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kbfactory.setRepository(tempPathFile);// 设置缓冲区目录upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MBtry {List<FileItem> items = upload.parseRequest(request);Iterator<FileItem> i = items.iterator();while (i.hasNext()) {FileItem fi = (FileItem) i.next();String fileName = fi.getName();if (fileName != null) {File fullFile = new File(fi.getName());File savedFile = new File(uploadPath, fullFile.getName());fi.write(savedFile);}}} catch (org.apache.commons.fileupload.FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 得到所有的文件return rResponse;}
方法(二)

//图片上传@RequestMapping("GetPortraitUrl")    public void receiveData(HttpServletRequest request, HttpServletResponse response){                      PrintWriter out = null;              response.setContentType("text/html;charset=UTF-8");                            Map map = new HashMap();              FileItemFactory factory = new DiskFileItemFactory();              ServletFileUpload upload = new ServletFileUpload(factory);              File directory = null;                List<FileItem> items = new ArrayList();              try {                  items = upload.parseRequest(request);                  // 得到所有的文件                  Iterator<FileItem> it = items.iterator();                  while (it.hasNext()) {                      FileItem fItem = (FileItem) it.next();                      String fName = "";                      Object fValue = null;                      if (fItem.isFormField()) { // 普通文本框的值                          fName = fItem.getFieldName();      //                  fValue = fItem.getString();                          fValue = fItem.getString("UTF-8");                          map.put(fName, fValue);                      } else { // 获取上传文件的值                          fName = fItem.getFieldName();                          fValue = fItem.getInputStream();                          map.put(fName, fValue);                          String name = fItem.getName();                          if(name != null && !("".equals(name))) {                              name = name.substring(name.lastIndexOf(File.separator) + 1);                                    //                      String stamp = StringUtils.getFormattedCurrDateNumberString();                                                    directory = new File("f://test");                                     directory.mkdirs();                                                            String filePath = ("f://test")+ File.separator + name;                              map.put(fName + "FilePath", filePath);                                                            InputStream is = fItem.getInputStream();                              FileOutputStream fos = new FileOutputStream(filePath);                              byte[] buffer = new byte[1024];                              while (is.read(buffer) > 0) {                                  fos.write(buffer, 0, buffer.length);                              }                              fos.flush();                              fos.close();                              map.put(fName + "FileName", name);                          }                      }                  }              } catch (Exception e) {                  System.out.println("读取http请求属性值出错!");      //          e.printStackTrace();              }                            // 数据处理                                                                      try {                  out = response.getWriter();                  out.print("{success:true, msg:'接收成功'}");                  out.close();              } catch (IOException e) {                  e.printStackTrace();              }                      }  



update.jsp文件:

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8" isELIgnored="false"%>      <%    String appContext= request.getContextPath();// 获得当前应用的根路径    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + appContext+"/" ;%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><base href="<%=basePath%>"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>上传目录</title></head><body><form method="POST" enctype="multipart/form-data" action="GetPortraitUrl" name="uploadForm">  选择一个文件: <input type="file" name="upfile"><br/>  <br/>  <input type="submit" value="上传"></form></body></html>

原创粉丝点击