JavaServlet文件上传-无需导入其他Jar包
Posted to-red
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaServlet文件上传-无需导入其他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);
以上是关于JavaServlet文件上传-无需导入其他Jar包的主要内容,如果未能解决你的问题,请参考以下文章