首先祝愿大家2013元宵节快乐!

图片等文件上传不同于单纯的数字,文件在计算机中以二进制的形式存在,文件的上传要用到Smartupload组件。我们一起学习一下如何利用Smartupload组件上传文件。


Smartupload简介

      Smartupload是由www.jspsmart.com网站开发的一套上传组件包,可以方便的实现文件的上传及下载功能,Smartupload组件使用很简单,可以实现上传文件类型的限制、也可以轻易的取得上传文件的名称,后缀、大小等。

      Smartupload本身是一个系统提供的jar包(和数据库操作时导入包是一个原理),用户直接将此包放到classpath下,也可以直接拷贝到Tomcat_home\lib目录之中。

    注意:   文件的上传有很多中,Smartupload只是其中的一种,但是提供这个组件的www.jspsmart.com网站已经关闭了,但是直到今天Smartupload因为它的好用一直被广泛应用到现在。


实例来讲解Smartupload组件上传文件的应用

         这个实例将把我桌面上的一张名字为dahai.jpg的图片上传到文件夹upload中。

        使用此组件可以完成上传,在上传的时候有一点需要注意的是,必须选择好要上传的文件是哪一个,这个选择肯定是由HTML中的表单来完成。

        由于要上传文件了,则表单必须进行封装因为传递的不再是普通的文本数据,表单的封装通过enctype来完成。

   
   
   
   
  1. smart_01.html  
  2. <html> 
  3. <head> 
  4. <title>WEB开发title> 
  5. head> 
  6. <body> 
  7. <form action="smart_01.jsp" method="post" enctype="multipart/form-data">    
  8.   请选择要上传的文件:<input type="file" name="pic"> 
  9.     <input type="submit" value="上传"> 
  10. form> 
  11. body> 
  12. html> 

这儿要注意的是:

        1. 由于考虑到上传的文件一般都比较大,所以method要用post,而不能用get,因为get受地址栏长度的限制。 

       2.enctype="multipart/form-data"表示将按照二进制的形式提交,因为图片等文件都不是单纯的数字了,而是二进制形式的文件。

     现在既然表单已经完成了,则此时就可以通过Smartupload完成上传了。在上传之前先做好如下几步:

       1. 建立一个upload的文件夹来盛放上传的东西(图片dahai.jpg)。这个文件夹在MyEclipse中的创建如下图所示:          

文件上传--Smartupload上传组件【上】_第1张图片

          2. 将Smartupload的jar包导入进lib文件夹中,在开发工具中的导入如下图所示:(直接将jar包用鼠标拖入进lib中或者复制黏贴到lib中) 注:jar包在本文章末尾附带下载

文件上传--Smartupload上传组件【上】_第2张图片 

                 3.  建立完成之后,需要按照如下步骤进行编写代码:

                              a:  实例化Smartupload对象

                              b:初始化上传的操作

                              c:准备上传

                              d:保存文件

   
   
   
   
  1. Smart_01.jsp  
  2.  
  3. <%@ page language="java" contentType="text/html" pageEncoding="utf-8"%> 
  4. <%@ page import="com.jspsmart.upload.*" %> 
  5. <html> 
  6. <head> 
  7. <title>WEB开发项目title> 
  8. head> 
  9. <body> 
  10. <%   
  11.    SmartUpload smart=new SmartUpload();  
  12.    smart.initialize(pageContext);// 初始化上传操作  
  13.    smart.upload();       //上传准备  
  14.    smart.save("upload");  //文件保存  
  15. %> 
  16. body> 
  17. html> 

上述代码中关于初始化等记住代码就行了,因为它们是固定的代码。

运行一下如下:

选择桌面上的dahai.jpg图片,然后点击上传,看一下tomcat下自己的项目webroot 里面的upload文件夹里,确实有了dahai.jpg这张图片,也就是说文件上传成功了。

    但是这种上传产生了一个问题,如果在HTML中有其他的表单属性,比如:smart_01.html中的表单还有姓名年龄等属性,那么在smart_01.jsp中就无法正常取得了,因为在HTML中的表单封装了,那该怎么办,我们下篇文章(文件上传【01】Smartupload上传组件【中】)再一起学习。

      下面是Smartupload的jar下载