Macaruni

一般的流程

  1. 文件去获取路径
  2. 文件工厂来设置文件的缓存
  3. ServletFileUpload来读取多个文件的
  4. 写文件

说明

涉及的对象

DiskFileItemFactory,File,ServletFileUpload,FileItem

对象的作用

DiskFileItemFactory类来处理文件缓存,需要注意设置的是缓存大小与文件路径
对于ServletFileUpload需要设置的是缓存的处理与http请求的解析
对于FileItem需要注意的是上传文件的判断

代码示例


@RequestMapping(value="/uploadTwo",method=RequestMethod.POST)
	@ResponseBody
	public Object uploadTwo(String currentDir,String type) throws IOException{
		JSONObject json = new JSONObject();
		try {
			// 获得磁盘文件条目工厂
			DiskFileItemFactory factory = new DiskFileItemFactory();//

			File file = new File(this.getRealPath("/upload/"));
			if(!file.exists()){
				file.mkdirs();
			}
			factory.setRepository(file);
			// 设置 缓存的大小,当上传文件的容量超过该缓存时,直接放到 暂时存储室
			factory.setSizeThreshold(1024 * 1024);
			// 处理多文件上传
			ServletFileUpload upload = new ServletFileUpload(factory);
			// 可以上传多个文件
			List<FileItem> list = (List<FileItem>) upload.parseRequest(request);
			//fileDirService用来处理文件上传
			fileDirService.setOperator(type);
			for (FileItem item : list) {
				if (!item.isFormField()) {
					InputStream in = item.getInputStream();
					fileDirService.uploadFile(currentDir, in);
					json.put("success", true);
	    			json.put("msg", "导入成功!");
	    			return json;
				}
			}	
		} catch (Exception e) {
			logger.error(e.getCause(),e);
			json.put("success", false);
			json.put("msg", "导入失败:"+e.getMessage());
		}
		json.put("success", false);
		json.put("msg", "导入失败!");
		return json;
	}

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2022-01-19
猜你喜欢
  • 2022-01-16
  • 2022-12-23
  • 2021-12-26
  • 2021-12-04
  • 2021-09-21
  • 2021-10-14
  • 2022-12-23
相关资源
相似解决方案