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

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

servlet处理程序:

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

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

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

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

如果用的原生jsp:

//下载
SmartUpload smart=new SmartUpload();
smart.initialize(config, request, response);
smart.setContentDisposition(null);
smart.downloadFile(sDocPath);
out.clear();
out = pageContext.pushBody();
//上传
SmartUpload smart=new SmartUpload();
smart.initialize(pageContext);
smart.upload();
com.jspsmart.upload.File myFile = smart.getFiles().getFile(0);
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. js篇-json字符串与json对象相互转化

    回调返回结果是 json字符串还是json对象一定要看清楚哦,状态不好的时候,感觉眼神也不好使了, var a = "{"name":"jenny", ...

  2. 敏捷开发— —Scrum 学习笔记

    敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷" ...

  3. 最短路径-并查集+Floyd[转载]

    题目描述 N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离 输入描述: 第一行两个正整数N(2<=N<=100)M(M&l ...

  4. network error:software caused connection abort

    使用Putty链接阿里云香港服务器报这个错误. vim /etc/ssh/sshd_config 找到如下配置 #ClientAliveInterval 540 #ClientAliveCountMa ...

  5. vue中把table导出表格excel

    1.首先下载2个js,我的百度网盘有 2.安装依赖 npm install -S file-saver xlsx(这里其实安装了2个依赖) npm install -D script-loader 3 ...

  6. 网络编程之Socket的TCP协议实现客户端与客户端之间的通信

    我认为当你学完某个知识点后,最好是做一个实实在在的小案例.这样才能更好对知识的运用与掌握 如果你看了我前两篇关于socket通信原理的入门文章.我相信对于做出我这个小案列是完全没有问题的!! 既然是小 ...

  7. Window.sessionStorage - Web API 接口参考 | MDN

    参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/sessionStorage sessionStorage 属性允许你访问一个 s ...

  8. node.js连接本地数据库及json返回数据

    新建一个文件夹node.js,目录下打开命令初始化一下 cnpm init 然后下载express框架 cnpm install express --save 接着下载数据库的依赖 cnpm inst ...

  9. summaryなな

    Word如果遇到有空白页不能删除的情况,将光标定位在空白页前一页的末尾,然后按Delete键就可以删除空白页了. 实时计算,强调的是实时.比如小明要查看他去年一年的消费总额度,那么当小明点下统计按钮的 ...

  10. MyBatis基础入门《十二》删除数据 - @Param参数

    MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...