`
zretc
  • 浏览: 20212 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用SmartUpload组件实现文件上传

    博客分类:
  • Java
阅读更多

 

文件上传是做JavaWeb项目中经常使用的功能,而SmartUpload是一个可免费使用的全功能的文件上传下载组件。虽然此组件最近很少有更新,但由于其简单易用,对于一般的项目来说还是一个很好的选择。下面以一个具体的例子来说明此组件的使用。

 

首先,将SmartUplaodjar文件放入项目的lib目录中。

 

然后,我们开发上传用的JSP页面,为了简单起见,本表单中仅包含了用户上传文件的文件域和一个上传按钮。效果如下:

 

需要注意的是,表单中使用了文件域,则表单提交类型(method)必须为post而且添加enctype="multipart/form-data"

 

有了上传页面,下面编写处理上传的Servlet,代码如下:

 

publicclassUploadServletextendsHttpServlet {

    privatestaticfinallongserialVersionUID = 1L;

 

    protectedvoiddoPost(HttpServletRequest request,

           HttpServletResponse response) throwsServletException, IOException {

       // 对象输出声明

       response.setContentType("text/html;charset=utf-8");

       PrintWriter out = response.getWriter();

       // 准备上传的目录

       String path = this.getServletContext().getRealPath("photo");

       File fpath = new File(path);

       if (!fpath.exists()) {

           fpath.mkdir();

       }

       // 实例化组件

       SmartUploadsu = newSmartUpload("utf-8");

       // 初始化组件

       su.initialize(this.getServletConfig(), request, response);

       // 上传限制

       su.setMaxFileSize(50 * 1024); // 设置大小50K

       su.setAllowedFilesList("gif,png,jpg"); // 设置上传类型

       try {

           // 上传文件

           su.upload();

           // 获取上传的第一个文件

           SmartFile file = su.getFiles().getFile(0);

           // 判断是否有文件上传,没有选择文件则提示用户

           if (file.isMissing()) {

              out.println("<script>alert('请选择要上传的文件!');location.href='upload.jsp';</script>");

              return;

           }

           // 按照规则准备文件名按规则

           String fname = new Date().getTime()

                  + (newRandom().nextInt(900) + 100) + "."

                  + file.getFileExt();

           // 把文件从缓存区转移到指定目录中

           file.saveAs(path + "/" + fname);

           out.println("<script>alert('文件上传成功!');location.href='upload01.jsp';</script>");

 

       } catch (SecurityException e) {

           e.printStackTrace();

           // 违反上传限制的异常处理

           out.println("<script>alert('请选择合法的文件!');location.href='upload01.jsp';</script>");

       } catch (SmartUploadException e) {

           e.printStackTrace();

           out.println("<script>alert('文件上传失败!');location.href='upload01.jsp';</script>");

       }

    }

}

 

以上代码实现了单文件上传处理,添加了注释方便阅读。其中核心就是使用了SmartFile类,这个类的主要方法如下:

 

1saveAs作用:将文件换名另存。

 

原型:

 

public void saveAs(java.lang.StringdestFilePathName)

 

 

public void saveAs(java.lang.StringdestFilePathName, intoptionSaveAs)

 

其中,destFilePathName是另存的文件名,optionSaveAs是另存的选项,该选项有三个值,分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUALSAVEAS_AUTOSAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件,SAVEAS_VIRTUAL表明以Web应用程序的根目录为文件根目录另存文件,SAVEAS_AUTO则表示让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会选择SAVEAS_VIRTUAL,否则会选择SAVEAS_PHYSICAL

 

2isMissing

 

作用:这个方法用于判断用户是否选择了文件,也即对应的表单项是否有值。选择了文件时,它返回false。未选文件时,它返回true

 

原型:publicbooleanisMissing()

 

3getFieldName

 

作用:取HTML表单中对应于此上传文件的表单项的名字。

 

原型:public String getFieldName()

 

4getFileName

 

作用:取文件名(不含目录信息)

 

原型:public String getFileName()

 

5getFilePathName

 

作用:取文件全名(带目录)

 

原型:public String getFilePathName

 

6getFileExt

 

作用:取文件扩展名(后缀)

 

原型:public String getFileExt()

 

7getSize

 

作用:取文件长度(以字节计)

 

原型:publicintgetSize()

 

8getBinaryData

 

作用:取文件数据中指定位移处的一个字节,用于检测文件等处理。

 

原型:public byte getBinaryData(int index)。其中,index表示位移,其值在0getSize()-1之间。

 

上传效果如下:

 

当然,此例只实现了单文件的处理,如果需要多文件上传只需要在表单中提供多个文件域,并在servlet中循环处理即可。本文中提到的jspSmartupload组件可以在网上进行下载,资源比较多此处不再提供下载地址。

 

作者:中软卓越天津ETC

 

分享到:
评论

相关推荐

    java使用smartupload组件实现文件上传的方法.doc

    java使用smartupload组件实现文件上传的方法.doc

    用smartUpload组件实现文件上传

    这是一个利用smartUpload组件实现文件上传的例子,已经测试通过!! 附带该组件只要放到服务器的lib下边重启服务器就能实现

    使用jspSmartUpload实现文件上传下载

    首先,`jspSmartUpload`是一个基于Java Servlet的文件上传组件,它提供了一套完整的API来处理文件上传的过程。这个组件支持多文件上传,可以设定上传文件的大小限制,还能处理各种类型的文件格式。通过使用`jsp...

    使用jspSmartUpload组件在jsp中实现上传和下载

    使用jspSmartUpload组件在jsp中实现上传和下载 在现代Web开发中,文件上传与下载是常见的需求之一,尤其在企业级应用、个人博客、图片分享等场景中尤为重要。jspSmartUpload作为一款专为JSP设计的文件上传组件,以...

    jspsmartupload组件实现文件上传

    NULL 博文链接:https://systemxgl.iteye.com/blog/267472

    利用jspSmartUpload组件进行文件上传

    JSP Smart Upload组件是一款强大的文件上传工具,尤其适合在JSP环境下使用。它提供了便捷的API,使得开发者能够轻松地处理文件上传的过程,包括文件大小限制、文件类型的检查以及多文件上传等功能。 JSP Smart ...

    java用法smartupload组件实现文件上传的方法_.docx

    下面我们将深入探讨如何使用SmartUpload组件来实现文件上传。 首先,要使用SmartUpload,你需要在项目中引入其对应的JAR包。这个组件包含了一系列类和方法,允许开发者轻松地处理文件上传的整个流程,包括接收文件...

    java使用smartupload组件实现文件上传的方法

    本篇文章将深入探讨如何使用SmartUpload组件在Java中实现文件上传,并对比分析使用组件和不使用组件的差异。 首先,不使用组件的文件上传通常涉及到Apache Commons FileUpload库,这是一个强大的工具,可以处理...

    JAVA Web程序设计-3期(KC006) 13-1-3应用jspSmartUpload组件实现文件上传的操作步骤.doc

    ### 使用jspSmartUpload组件实现文件上传的操作步骤 #### 学习目标 - 掌握使用jspSmartUpload组件实现文件上传的基本方法。 #### 知识要点 - jspSmartUpload组件中上传类的使用。 - jspSmartUpload组件的适用场景...

    jspSmartUpload 组件的上传下载完整实例

    采用jspSmartUpload 组件实现的上传下载的完整实例 下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:...

    在jsp中使用smartupload组件上传文件.rar_SmartUpload jsp_jsp 上传_jsp 上传文件_sma

    本篇文章将深入探讨如何在Windows环境下使用SmartUpload组件在JSP中实现文件上传功能。 首先,我们需要了解SmartUpload组件的基本概念。SmartUpload是基于Java的开源项目,由Marc Eppel开发。它提供了一套API,允许...

    Java Web应用开发 55 课堂案例-应用jspSmartUpload组件实现文件下载.docx

    在Java Web应用开发中,使用jspSmartUpload组件可以方便地实现文件上传和下载的功能。这个组件是一个强大的工具,尤其在处理多文件上传和下载时,能够简化开发过程。在这个55号课堂案例中,我们将专注于如何利用jsp...

    Java Web应用开发 54 课堂案例-应用jspSmartUpload组件实现文件上传.docx

    ### Java Web应用开发 54 课堂案例-应用jspSmartUpload组件实现文件上传 #### 案例背景与目标 本案例旨在通过实践的方式教授如何使用`jspSmartUpload`组件来实现文件上传功能。这对于从事Java Web开发的技术人员来...

    SmartUpload组件及使用示例

    在IT行业中,文件上传功能是许多Web应用必不...通过掌握它的使用方法和特性,你可以快速实现各种复杂的文件上传功能,提高开发效率,提升用户体验。无论你是新手还是经验丰富的开发者,SmartUpload都是值得信赖的伙伴。

    SmartUpload组件实现上传下载的简单示例

    SmartUpload组件是一个强大的Java上传下载工具,它简化了在Web应用程序中处理文件上传和下载的复杂性。在本文中,我们将深入探讨SmartUpload的工作原理、如何集成到项目中以及如何创建一个简单的上传下载示例。 ...

    jspsmartupload组件源码.zip_ jspSmartUpload_jsp_jsp 上传文件_jspSmartUplo

    总的来说,JSpsmartupload组件提供了一个完整的解决方案,使得在JSP应用中实现文件上传变得简单而直观。通过利用这些源代码,开发者不仅可以理解上传文件的底层工作原理,还可以根据实际需求进行定制化开发。在实际...

    smartupload组件

    SmartUpload组件是一款强大的Java上传组件,它为Web应用提供了便捷的文件上传功能。在Web开发中,文件上传是一项常见的需求,比如用户提交表单时可能需要上传头像、附件等。SmartUpload通过封装HTTP请求,使得处理...

    jspSmartUpload组件上传和下载代码

    `jspSmartUpload`组件是Java Web开发中用于实现文件上传和下载功能的一款强大工具,尤其在基于JSP的B/S(Browser/Server)架构应用程序中,它以其便捷性和高效性受到开发者们的青睐。本篇文章将深入探讨`jsp...

    SmartUpload组件使用(视频)

    总的来说,SmartUpload组件是Web开发中一个实用的工具,它通过提供便捷的文件上传功能,让开发者可以更专注于业务逻辑的实现,而无需过于关心上传细节。通过学习和熟练使用SmartUpload,你能够提升你的项目在文件...

    SmartUpload组件上传下载实例

    通过SmartUpload组件,开发者可以轻松地集成文件上传和下载功能,极大地提高了开发效率,同时也提升了用户的使用体验。在实际项目中,根据需求进行适当定制,可以构建出稳定且高效的文件管理系统。

Global site tag (gtag.js) - Google Analytics