您的位置:首页 > 编程语言 > Java开发

javaWEB 的文件上传功能

2016-05-04 17:08 471 查看
1 、首先要知道 上传功能的实现,其实就是文件或照片的复制     (无非就是inputstream 和outputstream的使用)

2 、上传文件的位置选择

下面通过 两个JSP页面  和 一个servlet来做演示

1 、upload.jsp

 <body>

           <form action="<%=basePath %>upload" enctype="multipart/form-data" method="post">

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

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

            <input type="submit" value="提交">

           </form>

  </body>

2、UploadServlet

public class UploadServlet extends HttpServlet {

    public void doPost(HttpServletRequest request,HttpServletResponse response){

        String savePath="D:/fileupload";

        

        File file=new File(savePath);

        

        if(!file.exists()&&!file.isDirectory()){

            file.mkdir();

        }

        String message="";

        

        try{

              DiskFileItemFactory factory = new DiskFileItemFactory();

              ServletFileUpload upload = new ServletFileUpload(factory);

              upload.setHeaderEncoding("UTF-8");

              if(!ServletFileUpload.isMultipartContent(request)){

                  return;

              }

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

              for(FileItem item : list){

                  if(item.isFormField()){

                      String name = item.getFieldName();

                      String value = item.getString("UTF-8");

                  }else{

                      String filename = item.getName();

                      if(filename==null || filename.trim().equals("")){

                          continue;

                      }

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

                      InputStream in = item.getInputStream();

                      FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);

                      byte buffer[] = new byte[1024];

                      int len = 0;

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

                          out.write(buffer, 0, len);

                      }

                      in.close();

                      out.close();

                      item.delete();

                      message = "文件上传成功!";

                  }

              }

            

        }catch(Exception e){

             message= "文件上传失败!";

            e.printStackTrace();

        }

        request.setAttribute("message",message);

         try {

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

        } catch (ServletException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

3、message.jsp

<body>

    result:<%=request.getAttribute("message") %>

  </body>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: