服务器端获取数据(二)

这篇博客讲的是服务器端获取文件数据

我们要在Servlet中重写doPost方法(不需要doGet方法了):

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  	if(ServletFileUpload.isMultipartContent(request)){//1、判断当前form表单的编码方式是不是为enctype="multipart/form-data"
   		FileItemFactory fileItemFactory = new DiskFileItemFactory();
   		ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
   		servletFileUpload.setFileSizeMax(1024*1024*6*10);
   		List<FileItem> fileItemList = null;
   		try {
    			fileItemList = servletFileUpload.parseRequest(request);//2、将form表单中每个携带数据的标签转换成每个FileItem对象并存到集合中
   		} catch (FileUploadException e) {
    			e.printStackTrace();
    			request.setAttribute("message", "文件太大,上传失败");
    			request.getRequestDispatcher("result.jsp").forward(request, response);
    			return;
   		}
   
   		for(FileItem fileItem : fileItemList){//3、获取form表单所携带的数据
    			if(fileItem.isFormField()){//为true表示为非文件类型的标签
     				String key = fileItem.getFieldName();//summary
     				String value = fileItem.getString();//summary对相的数据
     				System.out.println(key+":"+value);//这里获取的是非文件类型
    			}else{//文件类型
     				try {
      					String oldFileName = fileItem.getName();
      					String fileNameSuffix=oldFileName.substring(oldFileName.lastIndexOf("."));
      					System.out.println(fileNameSuffix);
      					String fileNamePrefix = UUID.randomUUID().toString();
      					//fileItem.write(new File("D:\\"+fileNamePrefix+fileNameSuffix));//未发布路径
      
      					String path = "D://"+fileNamePrefix+fileNameSuffix;
      					fileItem.write(new File(path+fileNamePrefix+fileNameSuffix));//发布路径
      					System.out.println(path);
     				} catch (Exception e) {
      					e.printStackTrace();
     				}
    			}
   		}
   		request.setAttribute("message", "文件上传成功");
   		request.getRequestDispatcher("result.jsp").forward(request, response);
  	}else{
   		request.setAttribute("message", "当前form表单enctype属性的属性值非multipart/form-data");
   		request.getRequestDispatcher("result.jsp").forward(request, response);
  	}
 }

我们需要在form中添加一个上传文件的标签

这时我们需要再修改一下form的标签属性
在这里插入图片描述

这时我们需要再创建一个jsp文件
在这里插入图片描述
在body中写如上一行代码,这样就OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值