使用smartupload组件实现jsp+jdbc上传下载文件实例解析


Posted in Javascript onJanuary 05, 2017

SmartUpload组件只有5个分别是:File、Files、Request、SmartUpload、SmartUploadException类,其中,File代表用户上传的文件,Files代表用户上传的多个文件,Request相当于HttpServletRequest的功能,用于获取表单数据,SmartUpload是最核心的类,负责文件上传下载,SmartUploadException是自定义异常。

   SmartUpload的基本使用思路如下:

jsp前台代码表单提交

<form action="" method="post" name="form1" onSubmit="r" enctype="multipart/form-data"> 
<input type="file" name="img" size="34"></td> 
</form>
//创建SmartUpload的实例 
SmartUpload su = new SmartUpload(); 
//初始化,如果是在Servlet中使用,则调用另一个重载方法:initialize(ServletConfig, HttpServletRequest, HttpServletResponse) 
su.initialize(pageContext); 
//完成上传操作 
su.upload(); 
//将上传的文件保存到指定的文件夹。参数1表示文件保存的路径,参数2是可选选项 
su.save("uploads/", SmartUpload.SAVE_VIRTUAL);

在save方法中,有三个常量:SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO,意义分别是:

SAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件,SAVEAS_VIRTUAL表明以Web应用程序的根目录为文件根目录另存文件,SAVEAS_AUTO则表示让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会选择SAVEAS_VIRTUAL,否则会选择SAVEAS_PHYSICAL。   

 如果希望给文件重命名(这是经常遇到的问题),可以调用File类的saveAs方法保存单个的文件,代码如下: 

SmartUpload su = new SmartUpload(); 
su.initialize(pageContext); 
//指定扩展名 
su.setAllowedFilesList("bmp,jpg,bng,gif"); 
//指定大小 
su.setMaxFileSize(1 * 1024 * 1024); 
su.upload(); 
//单独保存文件,用UUID名称保存 
Files files = su.getFiles(); 
for(int i = 0; i < files.getCount(); i ++){ 
 File f = files.getFile(i); 
 if(!f.isMissing()){ 
 //保存单个文件,参数1为文件名,参数2为可选选项。 
 f.saveAs("uploads/" +  
  UUID.randomUUID().toString() + "." + 
  f.getFileExt(), 
  SmartUpload.SAVE_VIRTUAL); 
 } 
}

 使用SmartUpload实现文件下载就更简单了,不再直接和数据流打交道,非常贴心的设计。SmartUpload定义了一个名为downloadFile()的方法,该方法的参数指定要下载的文件即可。当然,在此之前要先调用setContentDisposition(null),参数为null表示告知浏览器下载文件。代码如下:  

SmartUpload su = new SmartUpload(); 
su.initialize(pageContext); 
su.setContentDisposition(null); //表示这是一个下载操作 
su.downloadFile("uploads/fa79a56a-5e64-407d-a22b-8606d512b447.jpg");

smartupload组件包下载地址:http://download.csdn.net/detail/qq_24886937/9729267

以上所述是小编给大家介绍的使用smartupload组件实现jsp+jdbc上传下载文件实例解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
Jan 31 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 Javascript
全选复选框JavaScript编写小结(附代码)
Aug 16 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
微信小程序自定义可滑动日历界面
Dec 28 Javascript
前端JavaScript大管家 package.json
Nov 02 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
Jan 05 #Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 #Javascript
Extjs让combobox写起来简洁又漂亮
Jan 05 #Javascript
JS实现给对象动态添加属性的方法
Jan 05 #Javascript
bootstrap datetimepicker实现秒钟选择下拉框
Jan 05 #Javascript
JavaScript实现数组降维详解
Jan 05 #Javascript
jQuery解析返回的xml和json方法详解
Jan 05 #Javascript
You might like
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
基于jquery的Repeater实现代码
2010/07/17 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
pycharm安装图文教程
2017/05/02 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
Java中compareTo和compare的区别
2016/04/12 面试题
什么是抽象
2015/12/13 面试题
大学自荐信
2013/12/12 职场文书
励志演讲稿范文
2014/04/29 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
八项规定整改方案
2014/10/01 职场文书
国家助学金感谢信
2015/01/21 职场文书
个人思想政治总结
2015/03/05 职场文书
如何写好竞聘报告
2019/04/03 职场文书