使用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 相关文章推荐
收藏一些不常用,但是有用的代码
Mar 12 Javascript
很多人都是用下面的js刷新站IP和PV
Sep 05 Javascript
jQuery 前的按键判断代码
Mar 19 Javascript
js星星评分效果
Jul 24 Javascript
使用JavaScript制作一个简单的计数器的方法
Jul 07 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
layUI实现列表查询功能
Jul 27 Javascript
React生命周期原理与用法踩坑笔记
Apr 28 Javascript
基于redis的小程序登录实现方法流程分析
May 25 Javascript
js闭包和垃圾回收机制示例详解
Mar 01 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
异步加载script的代码
2011/01/12 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
理解javascript正则表达式
2016/03/08 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
Python3爬虫全国地址信息
2019/01/05 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
比利时家具购买网站:Home24
2019/01/03 全球购物
资深生产主管自我评价
2013/09/22 职场文书
数控专业个人求职信范例
2013/11/29 职场文书
四风存在的原因分析
2014/02/11 职场文书
化工工艺设计求职信
2014/06/25 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
升学宴学生答谢词
2015/01/05 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏