下面是一个jsp页面(method和enctype必须要有)

  1. //页面
    <form action="file?file=upLoadByjs" method="post" enctype="multipart/form-data">
  2. <input type="file" name=file1" /><Br>
  3. <input type="file" name=file2" /><Br>
  4. <input type="submit" value="上传">
  5. </form>
  1. enctype="multipart/form-data"会导致request取值取不到:
  1. su.getRequest().getParameter("btitle");解决取值

servlet处理程序:

  1. //新建一个jsmartUpLoad对象
  2. SmartUpload smartUpload = new SmartUpload();
  3. //上传初始化
  4. smartUpload.initialize(this.getServletConfig(),request,response);
  5. try {
  6. //设定上传限制
  7. //限制每个上传文件的最大长度;将最大设定为1024*1024*20,超过大小,后面取文件异常。
  8. smartUpload.setMaxFileSize(1024*1024*10);
  9. //限制总上传数据的长度
  10. smartUpload.setTotalMaxFileSize(1024*1024*20);
  11. //限制允许上传的文件类型、允许doc、txt、bat文件
  12. smartUpload.setAllowedFilesList("doc,txt,bat");
  13. //限制禁止上传的文件类型,禁止exe、jsp、和没有扩展名的文件
  14. smartUpload.setDeniedFilesList("exe,jsp,,");
  15. //上传文件
  16. smartUpload.upload();
  17. //将文件保存到指定的目录下,这个是全部上传到一个目录,名字不变save();有第二个参数,默认为SAVE_AUTO path为 /DDD 默认去找项目下面的DDD文件夹,如果没有,则去寻找目录所在盘符的根目录下DDD文件夹,如果都存在,优先第一个。与下面saveAs()一样。
  18.  
  19. smartUpload.save(path);
  20. } catch (SQLException e) {
  21. e.printStackTrace();
  22. } catch (SmartUploadException e) {
  23. e.printStackTrace();
  24. }
  25.  
  26. response.setContentType("text/html;charset=utf-8");
  27. PrintWriter out = response.getWriter();
  28. //逐一提取文件信息,同时输出上传文件的信息
  29. for (int i = 0; i < smartUpload.getFiles().getCount(); i++) {
  30. com.jspsmart.upload.File myFile =smartUpload.getFiles().getFile(i);
  31.  
  32. myFile.saveAs(path);
  33. //若文件表单中的文件选项没有选择文件则继续
  34. if(myFile.isMissing())
  35. continue;
  36. //显示当前文件的信息
  37. out.println("<table border='1'>");
  38. out.println("<tr><td>表单选项</td><td>"+myFile.getFieldName()+"</td></tr>");
  39. out.println("<tr><td>文件长度:</td><td>"+myFile.getSize()+"</td></tr>");
  40. out.println("<tr><td>文件名</td><td>"+myFile.getFileName()+"</td></tr>");
  41. out.println("<tr><td>文件扩展名</td><td>"+myFile.getFileExt()+"</td></tr>");
  42. out.println("<tr><td>文件全名</td><td>"+myFile.getFilePathName()+"</td></tr>");
  43. out.println("</table><br>");
  44. }
  45.  
  46. out.flush();
  47.  
  48. out.close();

该程序直接使用SmartUploa对象来实现文件上传。在申请对象后,必须要对其进行初始化:smartUpload.initialize(this.getServletConfig(),request,response);

使用jspSmartUpload组件进行文件下载:

  1. <a href="${pageContext.request.contextPath }/file1?file=downByJsmart&name=user.txt">下载user</a>
  2. //获取下载文件名
  3. String fileName = request.getParameter("name");
  4. //新建一个smartUpload对象
  5. SmartUpload smartUpload = new SmartUpload();
  6. //初始化
  7. smartUpload.initialize(this.getServletConfig(), request, response);
  8. //设定contentDisposition为null以禁止浏览器自动打开文件
  9. //保证单击链接后是下载文件。
  10. smartUpload.setContentDisposition(null);
  11. //下载文件
  12. try {
  13. smartUpload.downloadFile("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad/"+fileName);
  14. } catch (SmartUploadException e) {
  15. e.printStackTrace();
  16. }

如果用的原生jsp:

  1. //下载
  2. SmartUpload smart=new SmartUpload();
  3. smart.initialize(config, request, response);
  4. smart.setContentDisposition(null);
  5. smart.downloadFile(sDocPath);
  6. out.clear();
  7. out = pageContext.pushBody();
  8. //上传
  9. SmartUpload smart=new SmartUpload();
  10. smart.initialize(pageContext);
  11. smart.upload();
  12. com.jspsmart.upload.File myFile = smart.getFiles().getFile(0);
  13. myFile.saveAs(filename);

Servlet上传下载的更多相关文章

  1. servlet上传下载(任何格式的都可以)

    jar不能低于此版本,JDK1.6以上,否则户报错 <dependency> <groupId>commons-fileupload</groupId> <a ...

  2. Servlet 上传下载文件

    上传文件 1)在表单中使用表单元素 <input type=“file” />,浏览器在解析表单时,会自动生成一个输入框和一个按钮 2)表单需要上传文件时,需指定表单 enctype 的值 ...

  3. servlet上传与下载

    上传页面 上传学生信息 学号  姓名  密码  性别 男 女 年龄  身高  学院  计算机学院 软件学院 照片  简历 <!DOCTYPE html> <html lang=&qu ...

  4. Java基础——Servlet(八)文件上传下载

    一.简单的文件上传常见的组件Smartupload , Apache 的 commons FileUploadSmartupload上传的步骤: 1.初始化上传上下文 2.准备上传 3.保存文件 &l ...

  5. [转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案

    时间 2014-04-14 14:33:44  CSDN博客 原文  http://blog.csdn.net/xby1993/article/details/23677375 主题 ServletJ ...

  6. jsp+servlet实现文件上传下载

    相关素材下载 01.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  7. Servlet文件上传下载

    今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...

  8. 基于Spring Mvc实现的Excel文件上传下载

    最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ...

  9. Javaweb学习笔记——上传下载文件

    一.前言 在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为comm ...

随机推荐

  1. 循环匹配出图片地址(即src属性)

    <script type="text/javascript"> //思路分两步:作者(yanue). //1,匹配出图片img标签(即匹配出所有图片),过滤其他不需要的 ...

  2. abap异常处理 , update module

    1:异常 https://www.cnblogs.com/rainysblog/p/6665455.html 2:update module https://www.cnblogs.com/cindy ...

  3. 关于时间的SQL语句

    取当前时间: select current_timestamp; 输出:2016-06-16 16:12:52 select now();  输出:2016-06-16 16:12:52 取当前时间的 ...

  4. (转)EOSIO开发(一)使用Docker构建本地环境

    前言 一直想学习EOS开发,但是不知道怎么入门.最近从GitHub上下载了源码,发现官方已经提供了完整的EOSIO开发入门教程,既然如此赶紧开始行动.今天是系列文章的第一篇,介绍如何使用Docker搭 ...

  5. spring + mybatis配置及网络异常设置

    Spring引入mybatis <beans xmlns="http://www.springframework.org/schema/beans" xmlns:contex ...

  6. [LeetCode] 603. Consecutive Available Seats_Easy tag: SQL

    Several friends at a cinema ticket office would like to reserve consecutive available seats.Can you ...

  7. [LeetCode] Backtracking Template for (Subsets, Permutations, and Combination Sum)

    根据issac3 用Java总结了backtracking template, 我用他的方法改成了Python. 以下为template. def backtrack(ans, temp, nums, ...

  8. plt.contour 与 plt.contourf

    contour:轮廓,等高线 1.为等高线上注明等高线的含义: cs = plt.contour(x, y, z) plt.clabel(cs, inline=True, fontsize=10)#i ...

  9. 【网络设备】某防火墙基于IP地址的目的地址转换

    由于来自Internet的对政府,企业的网络攻击日益频繁,因此需要对内网中向外网提供访问服务的关键设备进行有效保护.采用目的地址NAT可以有效地将内部网络地址对外隐藏. 图中:公网中Internet用 ...

  10. 005-IIS处理过程

    PipeLine调用过程ISAPIRuntime ProcessReqeustHttpRuntime ProcessRequestNoDemand ProcessRequestNow ProcessR ...