java上传

我们在做web项目中通常会遇到上传文件的情况,用struts等框架的会直接用的自带的标签和组件,今天说的是利用servlet来完成上传。

我们这里利用到commons-fileupload组件,相关jar包可以取apache官网下载:http://commons.apache.org/

下面是servlet的代码:

//定义一个磁盘文件工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//获取ServletFileUpload的实例
ServletFileUpload fileUpload = new ServletFileUpload(factory);
//设置最大上传限制
fileUpload.setSizeMax(1024 * 1025 * 1024);
try {
	//获取上传文件列表
	List items = fileUpload.parseRequest(request);
	Iterator iter = items.iterator();
	//对文件进行迭代
	while (iter.hasNext()) {
//获取每一个上传文件
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
	String name = item.getFieldName();
	String value = item.getString();
	System.out.println(name + ":" + value);
} else {
	String fieldName = item.getFieldName();
	String fileName = item.getName();
	String contentType = item.getContentType();
	boolean isInMemory = item.isInMemory();
	long sizeInBytes = item.getSize();
	String path = getServletContext().getRealPath("/");
	//将文件写入磁盘
	File uploadedFile = new File(path + +new Random().nextInt(Integer.MAX_VALUE) + "_" + fileName);
	item.write(uploadedFile);
}
	}
} catch (FileUploadException e) {
	e.printStackTrace();
} catch (Exception e) {
	e.printStackTrace();
}

相关推荐