Exemplo n.º 1
0
  /**
   * 上传文件
   *
   * @param request
   * @param response
   * @throws IOException
   */
  @RequestMapping("upload")
  public void uploadFile(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    Map<String, Object> map = new HashMap<String, Object>();
    if (!(request instanceof DefaultMultipartHttpServletRequest)) {
      return;
    }
    DefaultMultipartHttpServletRequest re = (DefaultMultipartHttpServletRequest) request;
    Map<String, MultipartFile> fileMaps = re.getFileMap();
    Collection<MultipartFile> files = fileMaps.values();
    List<String> fileIds = new ArrayList<String>();
    for (MultipartFile myfile : files) {
      if (myfile.isEmpty()) {
        System.err.println("文件未上传");
      } else {
        String originalName = myfile.getOriginalFilename();
        String extName = FileUtil.getFileExtName(originalName);
        String filePath =
            storageClientService.uploadFile(
                null,
                new ByteArrayInputStream(myfile.getBytes()),
                myfile.getBytes().length,
                extName.toUpperCase());
        SxjLogger.info("siteUploadFilePath=" + filePath, this.getClass());
        fileIds.add(filePath);

        // 上传元数据
        NameValuePair[] metaList = new NameValuePair[1];
        metaList[0] = new NameValuePair("originalName", originalName);
        storageClientService.overwriteMetadata(filePath, metaList);
      }
    }
    map.put("fileIds", fileIds);
    String res = JsonMapper.nonDefaultMapper().toJson(map);
    response.setContentType("text/plain;UTF-8");
    PrintWriter out = response.getWriter();
    out.print(res);
    out.flush();
    out.close();
  }