利用fileupload 实现上传功能

来源:互联网 发布:逆光源网络剧在线观看 编辑:程序博客网 时间:2024/05/18 01:45

 

 

 

upload.jsp

<form action="${pageContext.request.contextPath}/servlet/UploadServlet2" enctype="multipart/form-data" method="post">

    上传用户<input type="text"name="username" /><br/>

    文件1<input type="file" name="file1"/><br/>

    文件2<input type="file" name="file2"/><br/>

    <input type="submit" value="submit"/><br/>

</form>

UploadServlet

request.setCharacterEncoding("utf-8");//对post有效

try{

    //1 创建解析工厂

    DiskFileItemFactory factory = new DiskFileItemFactory();

          

    //2 获取一个解析器

    ServletFileUpload upload = new ServletFileUpload(factory);

      

    //3 对请求对象进行解析

    List<FileItem> list = upload.parseRequest(request);

          

    //4 对FileItem对象列表进行迭代

    for(FileItem item : list){

       if(item.isFormField()){ //普通输入项

           String paramName = item.getFieldName();

           String paramValue = item.getString();

 

//乱码问题

paramValue=

new String(paramValue.getBytes("iso8859-1"),"utf-8");

           System.out.println(paramName + " = " + paramValue);

       }else{ //上传文件

           String fileName = item.getName();

          

           System.out.println("filename =" + fileName);

                 

           fileName =  fileName.substring(fileName.lastIndexOf("\\")+1);

        System.out.println("filename = " + fileName);

                 

           InputStream in = item.getInputStream();

           byte[] buffer = new byte[1024];

           int len = 0;

      

           FileOutputStream fos = new FileOutputStream("c:\\"+fileName);

           while((len = in.read(buffer)) >0){

              fos.write(buffer, 0, len);

           }

                 

           fos.flush();

           in.close();

           fos.close(); 

           request.setAttribute("message","上传成功!!!");                

       }

    }

          

}catch(Exception e){

    e.printStackTrace();

    request.setAttribute("message", "上传失败!!");

}

request.getRequestDispatcher("/message.jsp").forward(request, response);

 

 

 

 

 

 

原创粉丝点击