JSP页面添加上传控件的关键代码

1.要在项目WebRoot目录下的WEB-INF的lib目录下加载组件API

2.form表单提交方式需要是post方式

关键代码

 1 <%
 2     //设置编码格式
 3     request.setCharacterEncoding("UTF-8");
 4     String uploadFileName = "";
 5     String fileName = "";
 6     //请求信息中的内容是否是multipart类型
 7     boolean isMultipart = ServletFileUpload.isMultipartContent(request);
 8     //上传文件的存储路径(服务器文件系统上的绝对文件路径)
 9     String uploadFilePath = request.getSession().getServletContext()
10             .getRealPath("upLoadResource/");
11 
12     //判断是否是文件数据类型
13     if (isMultipart) {
14         //实例化操作对象
15         FileItemFactory factory = new DiskFileItemFactory();
16         //将网络传递的数据进行打包
17         ServletFileUpload upload = new ServletFileUpload(factory);
18 
19         try {
20             //对数据抽取成集合方便后续处理
21             List<FileItem> items = upload.parseRequest(request);
22             //迭代器
23             Iterator<FileItem> iter = items.iterator();
24             //遍历处理数据
25             while (iter.hasNext()) {
26                 FileItem item = (FileItem) iter.next();
27                 if (item.isFormField()) {
28                     //将取出的文件封装成单个对象
29                     fileName = item.getFieldName();
30                     //获取的表单name值为uname时,输出表单值
31                     if (fileName.equals("uname")) {
32                         out.print(item.getString("UTF-8")
33                                 + "上传了文件.<br>");
34                     }
35                 } else {
36                     String fn = item.getName();
37                     if (fn != null && !fn.equals("")) {
38                         File fullFile = new File(item.getName());
39                         File saveFile = new File(uploadFilePath,
40                                 fullFile.getName());
41                                 //保存文件
42                                 item.write(saveFile);
43                                 uploadFileName = fullFile.getName();
44                         out.print("文件上传成功:" + uploadFilePath);
45                     }
46 
47                 }
48             }
49         } catch (Exception e) {
50             e.printStackTrace();
51         }
52     }
53 %>

 

posted @ 2018-01-11 23:20  nuud  阅读(167)  评论(0)    收藏  举报