首先祝愿大家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中的创建如下图所示:

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

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

a:  实例化Smartupload对象

b:初始化上传的操作

c:准备上传

d:保存文件

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

文件上传--Smartupload上传组件【上】相关推荐

  1. 上传文件、上传按钮、Form组件上传文件

    for line in img.chunks() 将文件分成一块一块 style="opacity:0"  透明度 form多了验证 转载于:https://www.cnblogs ...

  2. 6行代码实现ASP无组件上传

    目前有很多无组件上传类,我大概看了一下,大多写的相当复杂,有的居然还只能传文本,最关键的是没有10行代码以下的:),我花了一个晚上时间研究了一下ADODB.Stream,并且用了6行代码实现了无组件上 ...

  3. 在jsp中使用smartupload组件上传文件- -

    在jsp中使用smartupload组件上传文件- - jsp对上传文件的支持不象php中支持的那么好,直接做成了函数,也不象asp中要通过组件才能实现.jsp中可以通过javabean来实现.但是我 ...

  4. 使用SmartUpload组件上传文件,自己踩过的坑

    昨天使用SmartUpload组件上传文件,代码很简单: smartupload_demo01.html <html> <head><title>smartuplo ...

  5. 使用SmartUpload组件上传文件

    刚刚上手的项目 被文件上传困扰了好久,之前用fileupload组件上传,代码参考孤傲苍狼博客,可是除了文件名,表单内的其他内容不知道该怎么读出来进行存储:所以此次采用smartupload组件进行上 ...

  6. javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件

    大家好,欢迎来到雄雄的小课堂,今天给大家分享的是<javaWeb中,如何通过Commons-FileUpload组件上传文件> 前言:文件上传大家都不陌生,在这个互联网飞速发展的时代,共享 ...

  7. element-ui upload组件 上传文件类型限制

    element-ui upload组件 上传文件类型限制 <el-uploadclass="c-upload"ref="upload":action=&q ...

  8. formdata上传文件_封装一个多文件断点续传、分片上传、秒传、重试机制的组件...

    本文为:多文件断点续传.分片上传.秒传.重试机制 的更新版,若想看初始版本的实现,请查看该文章. 凡是要知其然知其所以然 文件上传相信很多朋友都有遇到过,那或许你也遇到过当上传大文件时,上传时间较长, ...

  9. Vue上传文件 iview Upload UI 组件上传组件

    Vue上传文件 input支持上传文件 定义type类型,隐藏样式 第三定义change事件拿到file 的相关信息,accept限制支持的文件类型 然后给button增加点击事件 template部 ...

最新文章

  1. Android 自定义View ——Matrix (矩阵)
  2. library not found for -lAPOpenSdk解决方案
  3. TCP端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口
  4. TreeView的复选框隐藏 重新整理
  5. 我们做了一个医疗版MNIST数据集,发现常见AutoML算法没那么好用
  6. 船体6自由度英文名称
  7. 一分钟掌握Python字典的用法
  8. 软件行业各职位英文缩写
  9. 苹果应用商店审核_苹果应用商店AppStore审核规则指南
  10. 安川e1000中文说明书_安川(YASKAWA)变频器E1000说明书.pdf
  11. Win7 X64 SQL SERVER 2000企业管理器无法建立新表
  12. 联想服务器td340安装精简版win10
  13. 单片机学习和应用百问大全
  14. 构建供应商管理系统,打造企业端到端的高效供应链
  15. 广东高中生多少人_广东省高中生100米短跑记录是多少?谢谢
  16. 雪茄星系、玫瑰星云和灵魂星云
  17. pandas表格行列互换
  18. @available 和 #available的用法
  19. Android检测手机锁屏开屏事件
  20. 用pdf压缩软件压缩pdf文件的方法

热门文章

  1. go语言实现排序算法
  2. python之模块csv之CSV文件的写入(按行写入)
  3. Android Touch事件原理加实例分析
  4. windows自动关闭无响应程序
  5. [一文一命令]tail命令详解
  6. QEMU — Guest Agent
  7. C 语言编程 — 静态库、动态库和共享库
  8. Linux_Samba详解
  9. word取消“在页面视图中显示页面间空白”后,关闭打开又自动勾上
  10. 如何实现示波器探头的最佳匹配?