Java上传文件简单小项目

来源:互联网 发布:数据爬虫工程师 编辑:程序博客网 时间:2024/06/06 21:03

          所需的两个jar包下载  http://url.cn/PH8G3m

      第一步:编写jsp文件

                   <%@page pageEncoding="utf-8"
   contentType="text/html;charset=utf-8"%>
   <html>
     <head>
      </head>
     <body style="font-size:30px;">
         <form action="greeting" method="post" enctype="multipart/form-data">
           name:<input name="username"/><br/>
           photo:<input type="file" name="file1"/><br/>
           <input type="submit" value="确定"/>
         
         </form>
     
     </body>
   </html>

第二步:编写对应的Java类,这里我起名字HelloServlet(自己可以随意)

public class HelloServlet extends HttpServlet{
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
try{
List<FileItem> items = sfu.parseRequest(request);

                        //从request参数获得的是一个集合对象,要取出需要遍历即可
for(int i=0;i<items.size();i++){
FileItem curr = items.get(i);
if(curr.isFormField()){                               //如果是普通表单,即用户名或者参数,如下方法获得
String username = curr.getString();
System.out.println("username:"+username);
}else{                                                           //如果是特殊表单,即上传的文件,如下获得
ServletContext sctx = getServletContext();
String path = sctx.getRealPath("upload");       //这里需要在WebRoot下建立一个upload文件夹用来接受上传的文件 ,再通过次方法

                                                                                                                        //获得upload的路径,一般别写死
System.out.println("path:"+path);
String fileName = curr.getName();
System.out.println("fileName:"+fileName);
File file = new File(path+"\\"+fileName);
curr.write(file);
}
}
}catch(Exception e ){
e.printStackTrace();
}
}
}

第三步:配置web.xml文件

          <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
  <servlet-name>helloServlet</servlet-name>
  <servlet-class>web.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>helloServlet</servlet-name>
  <url-pattern>/greeting</url-pattern>
  </servlet-mapping>
</web-app>

运行发送请求  http://localhost:8080/web01/test.jsp


备注:工程目录

                     

0 0
原创粉丝点击