本地文件上传到服务器

            表单:

             

            <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后,即可实现本地文件上传至指定的服务器目录。

            相关文章
            相关标签/搜索
            2020王中王资料一肖中2018年香港开奖日期表2018香港历史开奖结果香港最快开奖现场直播