示例代码使用了两个开源框架:commons-io.jar和commons-fileupload.jar
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); if(isMultipart) { String dirPath = request.getSession().getServletContext().getRealPath("/files"); System.out.println(dirPath); File dir = new File(dirPath); if(!dir.exists()) { dir.mkdirs(); } FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upLoad = new ServletFileUpload(factory); try { List<FileItem> items = upLoad.parseRequest(request); for(FileItem item: items) { if(item.isFormField()) { String name = item.getFieldName();// 得到请求参数的名称 String value = item.getString();// 得到请求参数的内容 System.out.println("name : "+name+"\tvalue : "+value); } else { // 获得文件名称。这里加上系统时间是为了可以多次上传同一张图片 String fileName = System.currentTimeMillis()+item.getName(); item.write(new File(dir, fileName)); } } } catch (Exception e) { e.printStackTrace(); } } else { doGet(request, response); } }
本文介绍了一个使用Java Servlet实现的文件上传示例代码。该示例利用了commons-io和commons-fileupload两个开源库来处理HTTP请求中的多部分表单数据,并将文件保存到服务器指定目录。
959

被折叠的 条评论
为什么被折叠?



