zoukankan      html  css  js  c++  java
  • 【Java】Servlet文件上传-无需导入其他Jar包

    Servlet3.0中,改进了部分API,简化了Java Web的开发。

    如,文件上传。传统的文件上传需要借助于common-fileupload等工具,很复杂,借助Servlet3.0的API则极为简单。

    上传页面upload.jsp/upload.html

        <form method="post" action="upload" enctype="multipart/form-data">
            选择文件:<input type="file" id="file" name="file"><br>
            <input type="submit" value="提交">
        </form>

    处理上传的Servlet

    // Servlet3.0 相当于配置web.xml
    @WebServlet(name="Upload",urlPatterns={"/upload"})
    // 文件上传的注解
    @MultipartConfig
    public class Upload extends HttpServlet {
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                // 解决中文乱码
                response.setContentType("text/html;charset=utf-8");
                request.setCharacterEncoding("utf-8");
                PrintWriter out = response.getWriter();
                File path = new File("D://tmp");
                if (!path.exists()){
                    path.mkdir();
                }
                Part part = request.getPart("file");
                out.println("size:"+part.getSize()+"<br>");
                // tomcat7 下需要下面的方法获取文件名
                String cd = part.getHeader("Content-Disposition");
                //截取不同类型的文件需要自行判断
                String filename = cd.substring(cd.lastIndexOf("=")+2, cd.length()-1);
                // Tomcat8以上只需要 part.getSubmittedFileName() 方法可以直接获取
    //            将文件上传到服务器
                String filePath = path.getPath() + File.separator + filename;
                part.write(filePath);
                System.out.println("File Upload : " + filePath);
        }
    
    }
  • 相关阅读:
    官方文档翻译-Today
    RAC & MVVM 学习资料整理
    35种常用字体
    中文字体的种类
    自言自语(三)--部分中文字体
    自言自语(二)--英文无衬线体和有衬线体
    sketch字体设置技巧(一)---通过锚点改变字体形态
    提高设计档次的8个方法
    知识汇总09~bootstrap-select在Vue中的封装
    知识汇总08~字符串截取
  • 原文地址:https://www.cnblogs.com/to-red/p/11129451.html
Copyright © 2011-2022 走看看