jsp中使用form实现文本和文件上传

使用jsp处理文件的上传时,会使用form表单进行数据(文本和文件)的提交<form action="" enctype="multipart/form-data" method="post"> action就是这个form中的数据提交的目标位置,enctype设置规定在发送到服务器之前如何对数据进行编码(application/x-www-form-urlencoded默认的编码,不可以上传文件,multipart/form-data用于上传文件时使用,text/plain为规范的编码,不推荐使用)method须设置为post。

<form action="/DoAddProject" enctype="multipart/form-data" method="post">
  <input type="file" name="projectImg"/>
  <input type="text" name="choose" />
<input type="submit" value="提交" />

前端的页面设置好之后,在servlet中进行数据的接收和存储需要使用upload这个插件。upload插件下载

放在项目的web-content下的web-inf下的lib目录下,接下来刷新项目。
创建一个servlet进行数据的接收。要在servlet上加@WebServlet("对应form表格中action的uri")
doPost的方法如下:

//set request and response encoding
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");

//new FileItemFactory instance and ServletFileUpload instance
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

//parse request
List<FileItem> items = upload.parseRequest(request);
while(items.hasNext()){

  FileItem item = (FileItem) itr.next();

  // isFormField() true : item is text field, false is file field
  if (item.isFormField()){

    //get input name

    String fName = item.getFieldName();

    //get input value

    String fValue = item.getString();

}else{

	String fileName = new File(item.getName()).getName(); 

	File storeFile = new 	File(fileName); 

	if(storeFile.exists()){ 

	    storeFile.delete(); 

	} 
    // save to disk 
  	item.write(storeFile);
    //item.get() method,  return the file content as byte array

}

}

 

转载于:https://my.oschina.net/u/3106243/blog/1535361

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值