文件上传(一)

 

 

使用文件上传的流程(最原始的操作,也是后面的方法的内部实现):

 

简化过后的步骤:

 

list.jsp  代码部分:

enctype="multipart/form-data",必须要有!!!!!

<form action="<c:url value='/FileTwoServlet'  />" method="post" enctype="multipart/form-data">
	用户名:<input type="text" name="username"><br>
	头像:   <input type="file" name="headPicture"><br>
	<input type="submit" value="提交">
	</form>

servlet代码:

这里要注意的是request.getparamters()方法就不可以再用了,

可以使用request.getinputStream();将整个表单用流的形式来保存(也就是下面代码中,为什么要将request传入的原因)

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		
		//创建工厂
		DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
		//使用工厂创建解析器
		ServletFileUpload fileUpload = new ServletFileUpload(fileItemFactory);
		//得到fileIteam(s)
		try {
			List<FileItem> list = fileUpload.parseRequest(request);
			FileItem ft1 = list.get(0);
			FileItem ft2 = list.get(1);
			
			//isFormFiled判断是否为普通属性,即没有文件
			if(ft1.isFormField()) {
				System.out.println("普通表单演示----------");
				//这里就会把输入的值使用编码(utf-8)来输出
				System.out.println(ft1.getString("utf-8"));//张三
				//这个方法并不是输出用户输入的值(上面的那个才是)
				System.out.println(ft1.getName());//null
				System.out.println(ft1.getFieldName());//username
			}
			System.out.println("文件表单演示------------------");
			//这里就会把图片变成一些字符串来输出
			System.out.println(ft2.getString("utf-8"));
			//输出上传照片的格式
			System.out.println("ContentType"+ft2.getContentType());//image/jpeg
			//照片的大小
			System.out.println("size"+ft2.getSize());//164516
			//将图片输出保存到f:/1.jpg
			File file = new File("F:/1.jpg");
			ft2.write(file);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	
	}

 

好了这就是简单的文件上传步骤,commons-fileUpload和io组件中的相关方法,大家可以自己去commons组件中找找api查看!

其它细节问题:文件上传I(二)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值