简易版使用servlet上传文件的demo

第一次写,为了以后可以更方便的查找,如有读者访问,请见谅

使用的jar包有以下两个:
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
servlet上传文件分*步
1.写jsp文件
2.写web文件
3.写Servlet类

1、首先jsp文件(直接复制代码):enctype=“multipart/form-data” 上传图片是必须要加上 form的提交方式为post

 <form action="upload" method="post" **enctype="multipart/form-data"**>
 	<input type="text" name="name">
	<input type="file" name="upload">
	<input type="submit" value="上传">
</form>
2、web.xml文件 (最基本的跳转页面就可以了)
		  <display-name>upload</display-name>
		  <welcome-file-list>
		    <welcome-file>index.jsp</welcome-file>
		  </welcome-file-list>
		  <servlet>
		  	<servlet-name>uploadServlet</servlet-name>
		  	<servlet-class>upload.UploadServlet</servlet-class>
		  </servlet>
		  <servlet-mapping>
		  	<servlet-name>uploadServlet</servlet-name>
		  	<url-pattern>/upload</url-pattern>
		  </servlet-mapping>
		</web-app>

3、Servlet 关键的doPost方法, 继承HttpServlet类即可

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=utf-8");
	response.setCharacterEncoding("UTF-8");
	//设置服务器保存路径
	String path = request.getSession().getServletContext().getRealPath("upload");
	//实例化解析工厂
	DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
	//实例化ServletFileUpload
	ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
	
	try {
		//解析request请求
		List list = servletFileUpload.parseRequest(request);
		//将list转成迭代为FileItem类型
		Iterator<FileItem> items = list.iterator();
		//处理得到的每一个items
		while(items.hasNext()){
			FileItem item = items.next();
			//判断是否是不同字段
			if(item.isFormField()){
				System.out.println("当前的普通字段是:"+item.getFieldName());
																//解决文字的乱码问题
				System.out.println("当前的普通字段是的值:"+new String(item.getString().getBytes("ISO8859_1"),"utf-8"));
			}
			//当前解析的是文件字段
			else{
				String fileName = item.getName();
				if(fileName!=null && !fileName.equals("")){
				//保存路径,文件名
					File file = new File(path, fileName);
					//保证目录是正确的,如果当前目录不存在,就自动创建文件路径
					file.getParentFile().mkdirs();
					//保存文件
					item.write(file);
					System.out.println("上传成功");
				}
				else{
					System.out.println("上传失败");
				}
			}
		}
	} catch (Exception e) {
		// TODO: handle exception
		System.out.println("上传失败");
	}
}

备注:1、跳转页面的传参是根据name的属性来传递的
2、一定要添加两个jar包
commons-fileupload-1.2.2.jar 上传文件所需要的类包
commons-io-2.0.1.jar 具体没研究过,虽然没有这个包显示时不会报错,但在上传时候不能对request解析

以上代码均已测试,为测试demo,有很多不足之处请指点!!!
新手原创,如有异同纯属偶然

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值