首先祝愿大家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来完成。
- smart_01.html
- <html>
- <head>
- <title>WEB开发</title>
- </head>
- <body>
- <form action="smart_01.jsp" method="post" enctype="multipart/form-data"> <!--封装表单-->
- 请选择要上传的文件:<input type="file" name="pic">
- <input type="submit" value="上传">
- </form>
- </body>
- </html>
这儿要注意的是:
1. 由于考虑到上传的文件一般都比较大,所以method要用post,而不能用get,因为get受地址栏长度的限制。
2.enctype="multipart/form-data"表示将按照二进制的形式提交,因为图片等文件都不是单纯的数字了,而是二进制形式的文件。
现在既然表单已经完成了,则此时就可以通过Smartupload完成上传了。在上传之前先做好如下几步:
1. 建立一个upload的文件夹来盛放上传的东西(图片dahai.jpg)。这个文件夹在MyEclipse中的创建如下图所示:
2. 将Smartupload的jar包导入进lib文件夹中,在开发工具中的导入如下图所示:(直接将jar包用鼠标拖入进lib中或者复制黏贴到lib中) 注:jar包在本文章末尾附带下载
3. 建立完成之后,需要按照如下步骤进行编写代码:
a: 实例化Smartupload对象
b:初始化上传的操作
c:准备上传
d:保存文件
- Smart_01.jsp
- <%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
- <%@ page import="com.jspsmart.upload.*" %>
- <html>
- <head>
- <title>WEB开发项目</title>
- </head>
- <body>
- <%
- SmartUpload smart=new SmartUpload();
- smart.initialize(pageContext);// 初始化上传操作
- smart.upload(); //上传准备
- smart.save("upload"); //文件保存
- %>
- </body>
- </html>
上述代码中关于初始化等记住代码就行了,因为它们是固定的代码。
运行一下如下:
选择桌面上的dahai.jpg图片,然后点击上传,看一下tomcat下自己的项目webroot 里面的upload文件夹里,确实有了dahai.jpg这张图片,也就是说文件上传成功了。
但是这种上传产生了一个问题,如果在HTML中有其他的表单属性,比如:smart_01.html中的表单还有姓名年龄等属性,那么在smart_01.jsp中就无法正常取得了,因为在HTML中的表单封装了,那该怎么办,我们下篇文章(文件上传【01】Smartupload上传组件【中】)再一起学习。
下面是Smartupload的jar下载
转载于:https://blog.51cto.com/zhaoyuqiang/1139384