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

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上传下载文件实例解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • js自动下载文件到本地的实现代码

    复制代码 代码如下: <html> <head> <title>js自动下载文件到本地</title> <script language="javascript" type="text/javascript"> function InitAjax() { var ajax; if(window.ActiveXObject){ var versions = ['Microsoft.XMLHTTP', 'MSX

  • JSP实现从不同服务器上下载文件的方法

    本文实例讲述了JSP实现从不同服务器上下载文件的方法.分享给大家供大家参考,具体如下: 最近在项目当中遇到模板下载的问题:当服务器为Tomcat的时候文件可以正常下载,但是当放到线上(WebLogic服务器)下载的模板为空,现记录下解决办法. public void importSuccess() throws Exception { try { HttpServletResponse response = Struts2Utils.getResponse(); // 重置响应 response

  • jsp下显示中文文件名及绝对路径下的图片解决方法

    (1)jsp显示中文文件名的图片 方法一.将Tomcat中的server.xml文件中改为: 复制代码 代码如下: <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redir

  • JSP 点击链接后下载文件(相当于右键另存)功能

    复制代码 代码如下: /** * 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile(String text, String fileName) throws IOException { response.addHeader("Content-Disposition", "attachment; filename=" + f

  • JS下载文件|无刷新下载文件示例代码

    后台代码Handler.ashx 复制代码 代码如下: <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { string fileName = "web.conf

  • 使用JS代码实现点击按钮下载文件

    正文 有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 font-awesome 上面的.使用时,首先将 font-awesome 整个文件夹下载下来,利用bower或者是自己去官网上面下载都行. 将整个文件夹放在项目文件中之后,在页面上面引入css文件 <link href="libs/font-awesome-4.7.0/css/font

  • js下载文件并修改文件名

    用js下载文件,使用<a>标签,添加download属性即可. var a = document.createElement("a"); a.href = "http://XXX.com/audioStream/8a9dbae9d0859e48fc1f590fcf6d4ccc.mp3": a.download ="test.mp3"; a.click(); 但是如果想给文件重新命名,貌似js无法实现. 因此考虑后台实现,用java代理

  • 用JS在浏览器中创建下载文件

    但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打开->另存为.如下面这个链接: 复制代码 代码如下: <a href="file.js">file.js</a> 用户点击这个链接的时候,浏览器会打开并显示链接指向的文件内容,显然,这并没有实现我们的需求.HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载(目前只有chrome.firefox和opera支持). 下载时会

  • JAVASCRIPT模式窗口中下载文件无法接收iframe的流

    在打开的模式窗口中,如果要借助于模式窗口接受服务器的流,通常需要隐藏一个iframe;有时候,然后采用iframe.src的形式去做请求:有时,在下载时发现服务器无法接收iframe的流,因为在模式窗口中没有触发iframe的src重新定向事件,普通的窗口无此问题. 具体解决办法: 在模式窗口的父窗口中隐藏一个iframe,下载的地址指向这个iframe.

  • 获取URL地址中的文件名和参数的javascript代码

    复制代码 代码如下: //获取页面文件名 function GetPageName() { var url=window.location.href;//获取完整URL var tmp= new Array();//临时变量,保存分割字符串 tmp=url.split("/");//按照"/"分割 var pp = tmp[tmp.length-1];//获取最后一部分,即文件名和参数 tmp=pp.split("?");//把参数和文件名分割开

随机推荐