码迷,mamicode.com
首页 > Web开发 > 详细

文件上传功能

时间:2016-07-03 17:07:45      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

1:首先在index.jsp的界面上初始化一个表单。

技术分享
<body>
        <form  enctype="multipart/form-data" action="<%=path%>/1.jsp" method="post">
            姓名:<input type="text" name="username"/>
  选择文件:<input type="file" name="myfile"/>
      <input type="submit" value="提交"/>
        </form>
</body>
技术分享

enctype=多部分的表单数据,并且如果form表单的属性中多了enctype="multipart/form-data",是不能使用request.getParameter(name属性的)

2:在WEB-ROOT的根目录下创建一个1.jsp,实现文件上传功能!

技术分享
<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
   //判定request请求的类型
     request.setCharacterEncoding("utf-8");
    boolean flag= ServletFileUpload.isMultipartContent(request);
     if(flag)
     {
         DiskFileItemFactory factory=new DiskFileItemFactory();
        //找到一个解析器,解析请求中的各个项目
         ServletFileUpload upload=new ServletFileUpload(factory);//解析器的创建
         List<FileItem> list=upload.parseRequest(request);//使用解析器解析请求的数据
         Iterator<FileItem> myitor= list.iterator();//自动迭代的功能
         while(myitor.hasNext())
         {
                FileItem item=myitor.next();
                if(item!=null)
                {
                  //判断FileItem对象封装的数据类型,文件表单或普通表单字段
                  if(item.isFormField())//普通表单
                  {
                   String name= item.getFieldName();//获取表单的name属性
                   if(name.equals("username"))
                   {
                      out.print(item.getString("utf-8"));
                   }
                  }
                  else
                  {
                    String name=item.getName();//获得文件名
                    out.print(name);
                    String path="/WEB-INF/upload/";//相对路径名
                    String path2=this.getServletContext().getRealPath(path);//通过相对路径名来获得绝对路径名
                    out.print(path2);
                    File file=new File(name);
                    File uploadpath=new File(path2,file.getName());
                    item.write(uploadpath);//向该路径写入文件
                    out.print("上传成功");
                  }
                }
         }
     }

 %>
技术分享

文件上传功能

标签:

原文地址:http://www.cnblogs.com/S2223/p/5638124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!