文档详情

炫酷的文件上传效果概要.docx

发布:2017-04-04约1.46万字共17页下载文档
文本预览下载声明
1、文件上传基础 ? ? 1)浏览器页面: ????form action=${pageContext.request.contextPath }/UploadServlet method=POST enctype=multipart/form-data 选择文件:input type=file name=name/br/ 文件信息:input type=text name=info/ input type=submit value=提交/ /form ? ? 2)服务器Servlet端: ? ??? ??? ? 使用Apache提供的和文件上传有关的两个jar包:common-fileupload-1.3.1.jar和common-io-2.2.jar。注意后面那个包的版本一定要=2。 ? ??? ? 代码: public class UploadServlet extends HttpServlet { ? private String serverPath = e:/uploader/; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(utf-8); response.setContentType(text/html;charset=utf-8); //[1]创建一个DiskFileItemFactory对象,配置缓存信息 DiskFileItemFactory factory = new DiskFileItemFactory(); //[2]创建ServletFIleUpload对象 ServletFileUpload sfu = new ServletFileUpload(factory); //[3]设置文件名称的编码 sfu.setHeaderEncoding(utf-8); sfu.setFileSizeMax(1024);//设置单个文件的最大字节数:1M sfu.setSizeMax(10*1024);//设置整个表单的最大字节数:10M //[4]开始解析文件 try { //一个文件/普通数据就封装在一个FileItem中 ListFileItem items = sfu.parseRequest(request); ? //[5]获取文件信息 for(FileItem item:items){ //[6]判断是文件还是普通数据 if(item.isFormField()){ //普通数据 String fileName = item.getFieldName(); if(fileName.equals(info)){ //获取数据 String value = item.getString(); System.out.println(info:+value); } }else{ //文件 //获取文件名称 String name = item.getName(); //获取文件实际内容 InputStream is = item.getInputStream(); //保存文件,使用common-io.jar包中的工具类,将输入流保存至文件中 FileUtils.copyInputStreamToFile(is, new File(serverPath+/+name)); System.out.println(文件:+name+保存成功); } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ? public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ? doGet(request,response); } ? } 2、使
显示全部
相似文档