servlet文件上传

//上传文件到指定目录,返回文件名称List
filePath 为完整的文件路径,如xxx/xxx/yy.xml


	public List<String> uploadFile(String filePath ,HttpServletRequest request,HttpServletResponse response) throws Exception{
		List<String> fList =null;
		DiskFileItemFactory factory = new DiskFileItemFactory();
		ServletFileUpload upload = new ServletFileUpload(factory);
		boolean b = upload.isMultipartContent(request);
		// 判断是否是上传表单
		if (!b) {
			fList =null;
			return fList;
		}else{
			fList = new ArrayList<String>();
			List<FileItem> fileitems = upload.parseRequest(request);
			for (FileItem item : fileitems) {
				// 判断是不是普通字段
				if (item.isFormField()) {
					String name = item.getFieldName();
					String value = item.getString();
					value = new String(value.getBytes("iso-8859-1"), "utf-8");
					System.out.println(name + "=" + value);
				} else {
					String filename = item.getName();
					filename = filename.substring(filename.lastIndexOf("\\") + 1);
					File file = new File(filePath, filename);
					file.createNewFile();
					InputStream in = item.getInputStream();
					FileOutputStream fos = new FileOutputStream(file);
					int len;
					byte[] buffer = new byte[1024];
					while ((len = in.read(buffer)) > 0)
						fos.write(buffer, 0, len);
					
					fList.add(filename);
					fos.close();
					in.close();
					item.delete(); 
				}
			}
		}
		return fList;
	}

猜你喜欢

转载自javafu.iteye.com/blog/1964480