zoukankan      html  css  js  c++  java
  • 本地文件上传到服务器

    表单:

    <form action="A" method="post" enctype="multipart/form-data"> <!-- 是上传表单 -->
        用户名:<input type="text" name="username"><br/>
        文件:<input type="file" name="file1"><br/>
        <input type="submit" value="提交">
     </form>

    Servlet:

    public class Servlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1.创建文件上传工厂类
            DiskFileItemFactory fac = new DiskFileItemFactory();
            //2.创建文件上传核心类
            ServletFileUpload upload = new ServletFileUpload(fac);
            //[设置单个文件最大上传大小:30M]
            upload.setFileSizeMax(30*1024*1024);
            //[设置总的文件最大上传大小:50M]
            upload.setSizeMax(50*1024*1024);
    
            //判断表单是否为文件上传表单
            if(upload.isMultipartContent(request)){
                //3.把请求数据转换为FileItem对象集合
                try {
                    List<FileItem> items = upload.parseRequest(request);
                    //遍历每一个上传项
                    for(FileItem item:items){
                        //再判断是普通表单还是文件上传表单
                        if(item.isFormField()){
                            //普通表单
                            System.out.println("普通表单");
                            //获取元素名称
                            String fileName = item.getFieldName();
                            //获取文本框的值
                            String value = item.getString("UTF-8");
                            System.out.println(fileName+":"+value);
    
                        }else{
                            //处理文件上传
    
                            //获取上传文件的名字
                            String name = item.getName();
                            System.out.println(name);
                            //获取上传的目录路径,指定文件存储路径
                            String basePath = "G:/IntelliJ IDEA 2018.2.4/DynamicWeb/src/";  /*绝对路径,存放到服务器中的路径*/
                            //创建文件对象
                            File file = new File(basePath,name);
                            try {
                                item.write(file);
                            } catch (Exception e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }//写文件
                            item.delete();//删除临时文件
                        }
                    }
                } catch (FileUploadException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }else{
            System.out.println("文件上传异常,不处理!");
        }
    
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.doGet(request, response);
        }
    }

    将表单提交到Servlet后,即可实现本地文件上传至指定的服务器目录。

  • 相关阅读:
    bzoj 1217: [HNOI2003]消防局的设立
    [USACO09FEB]庙会班车Fair Shuttle
    bzoj 1052: [HAOI2007]覆盖问题
    bzoj 1974: [Sdoi2010]代码拍卖会
    bzoj 1835: [ZJOI2010]基站选址
    bzoj 1875: [SDOI2009]HH去散步
    bzoj 3295: [Cqoi2011]动态逆序对
    bzoj 2120: 数颜色
    P1032 字串变换
    简析拓扑排序
  • 原文地址:https://www.cnblogs.com/chiweiming/p/11729148.html
Copyright © 2011-2022 走看看