文件上传

要处理文件上传,首先要判断是否使用sprng框架,第一种方式为使用spring框架来上传,处理步骤:
1、在spring中配置文件上传的Resolver

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8" />

2、在Controller层添加处理文件上传的方法,并使用MultipartFile来接受文件
@RequestMapping(value = "/uploadVideo.do",method=RequestMethod.POST)
	public @ResponseBody String upload(HttpServletRequest request,HttpServletResponse response,
			@RequestParam(value = "upload_file") MultipartFile file) throws IOException {
		try {
			String cloudFileName = videoCloudStorage.upload(file.getOriginalFilename(), file.getInputStream());
			return ReturnMessageUtil.createOKMsg(cloudFileName);
		} catch (Exception e) {
			logger.error("上传文件失败!", e);
			return ReturnMessageUtil.createErrorMsg("上传视频失败");
		}
	}

第二种方法直接使用commons-upload来上传
1、判断接受的请求中是否包含文件上传

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

2、解析请求获取参数
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();

// Parse the request
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
    FileItemStream item = iter.next();
    String name = item.getFieldName();
    InputStream stream = item.openStream();
    if (item.isFormField()) {
        System.out.println("Form field " + name + " with value "
            + Streams.asString(stream) + " detected.");
    } else {
        System.out.println("File field " + name + " with file name "
            + item.getName() + " detected.");
        // Process the input stream
        ...
    }
}

你可能感兴趣的:(文件上传)