zoukankan      html  css  js  c++  java
  • 文件上传下载——servlet

    fileupload 组件可以将所有的请求信息都解析成 FileIteam 对象,可以通过对 FileItem 对象的操作完成 上传,⾯向对象的思想。

    package com.southwind.servlet;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.util.List;
    @WebServlet("/upload")
    public class UploadServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
     }
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    // //通过输⼊流获取客户端传来的数据流
    // InputStream inputStream = req.getInputStream();
    // Reader reader = new InputStreamReader(inputStream);
    // BufferedReader bufferedReader = new BufferedReader(reader);
    // //通过输出流将数据流输出到本地硬盘
    // //获取⽂件夹的绝对路径
    // String path = req.getServletContext().getRealPath("file/copy.txt");
    // OutputStream outputStream = new FileOutputStream(path);
    // Writer writer = new OutputStreamWriter(outputStream);
    // BufferedWriter bufferedWriter = new BufferedWriter(writer);
    // String str = "";
    // while((str = bufferedReader.readLine())!=null){
    // System.out.println(str);
    // bufferedWriter.write(str);
    // }
    // bufferedWriter.close();
    // writer.close();
    // outputStream.close();
    // bufferedReader.close();
    // reader.close();
    // inputStream.close();
     try {
     DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
     ServletFileUpload servletFileUpload = new
    ServletFileUpload(fileItemFactory);
     List<FileItem> list = servletFileUpload.parseRequest(req);
     for(FileItem fileItem : list){
     if(fileItem.isFormField()){
     String name = fileItem.getFieldName();
     String value = fileItem.getString("UTF-8");
     System.out.println(name+":"+value);
     }else{
     String fileName = fileItem.getName();
     long size = fileItem.getSize();
     System.out.println(fileName+":"+size+"Byte");
     InputStream inputStream = fileItem.getInputStream();
    // Reader reader = new InputStreamReader(inputStream);
    // BufferedReader bufferedReader = new
    BufferedReader(reader);
     String path =
    req.getServletContext().getRealPath("file/"+fileName);
     OutputStream outputStream = new FileOutputStream(path);
    // Writer writer = new OutputStreamWriter(outputStream);
    // BufferedWriter bufferedWriter = new
    BufferedWriter(writer);
     int temp = 0;
     while((temp = inputStream.read())!=-1){
     outputStream.write(temp);
     }
    // bufferedWriter.close();
    // writer.close();
     outputStream.close();
    // bufferedReader.close();
    // reader.close();
     inputStream.close();
     System.out.println("上传成功");
     }
     }
     } catch (FileUploadException e) {
     e.printStackTrace();
     }
     }
    }
  • 相关阅读:
    idea中如何配置tomcat
    onselectstart属性解决双击出现的蓝色区域
    (二十二)数组的最大值和最小值
    (二十一)数组的初始化
    (二十)两种数据类型的对比
    (十九)数组的内存分配
    (十八)数组概述
    (十六)函数的重载
    (十七)自定义函数
    (十五)函数的入栈和出栈
  • 原文地址:https://www.cnblogs.com/Gazikel/p/14139397.html
Copyright © 2011-2022 走看看