diyUpload를 이용하여 다중 사진 업로드 및 미리보기

2885 단어
요구 사항:
1. aax 여러 이미지 업로드
2. 그림 미리 보기
구현:
1. 첨부 파일을 도입한 js
2.html 페이지:
 <div id="test" >
 </div>
<script type="text/javascript">
  $('#test').diyUpload({
    url:'${basePath}upload/img',
    success:function( data ) {
      console.info( data );
      },
      error:function( err ) {
        console.info( err );
      }
      });
</script>

2. 자바 업로드 클래스 코드:
@Controller
@RequestMapping("upload")
public class UploadController {
	private String processImg(HttpServletRequest request, String imageDir)
			throws Exception {
		String uuid = CommonUtils.getUUID();
		request.setCharacterEncoding("UTF-8");
		DiskFileItemFactory factory = new DiskFileItemFactory();
		ServletFileUpload upload = new ServletFileUpload(factory);
		List<FileItem> items = upload.parseRequest(request);
		Iterator<FileItem> itr = items.iterator();
		while (itr.hasNext()) {
			FileItem item = (FileItem) itr.next();
			if (item.isFormField()) {
				System.out.println(" :" + item.getFieldName() + ", :"
						+ item.getString("UTF-8"));
			} else {
				System.out.println(" :" + item.getSize());
				System.out.println(" :" + item.getContentType());
				System.out.println(" :" + item.getName());
				FileUtils.forceMkdir(new File(imageDir));
				String file = imageDir + File.separator + uuid + "."
						+ FilenameUtils.getExtension(item.getName());
				item.write(new File(file));
				return uuid + "." + FilenameUtils.getExtension(item.getName());
			}
		}
		return uuid;
	}

	@RequestMapping(value = "/img", method = RequestMethod.POST)
	@ResponseBody
	public UploadResVo img(HttpServletRequest request) throws Exception {
		if (!isLogin(request)) {
			throw new RuntimeException(ExceptionMsg.UI_NOPERMISSION);
		}
		CommonProperties commonProperties = RequestContextUtils
				.getWebApplicationContext(request).getBean(
						"com.eqiurong.mp.vo.CommonProperties",
						CommonProperties.class);

		String imageDir = commonProperties.baseRealDir + File.separator
				+ commonProperties.uploadDir + File.separator;
		UploadResVo resVo = new UploadResVo();
		MsgVo msg = new MsgVo();
		String file = processImg(request, imageDir);

		msg.setId(file);
		msg.setLocalname(file);
		msg.setUrl(commonProperties.basePath + commonProperties.uploadDir
				+ File.separator + file);
		resVo.setMsg(msg);
		return resVo;
	}
}

좋은 웹페이지 즐겨찾기