jsp中使用SmartUpload上传文件

1、下载jspSmartUpload组件后,解压缩。把com目录复制到应用程序的WEB-INF\classes目录下。

2、尤其注意

(1)文件上传表单要添加enctype="multipart/form-data",如:

<form action="product_update_ok.jsp?p_id=<%= p_id %>" method="post" onSubmit="return check_product(this);"  enctype="multipart/form-data">

(2)对于文件上传表单,通过request对象无法获得表单项的值,必须通过jspSmartUpload组件提供的Request类来获取,如:

String p_name=su.getRequest().getParameter("p_name");

且该代码要放在文件上传代码之后。

3、主要代码

//新建上传对象
SmartUpload su=new SmartUpload();
// 上传初始化
su.initialize(pageContext);
// 设定上传限制
// 限制每个上传文件的最大长度。
// su.setMaxFileSize(10000);
// 限制总上传数据的长度。
// su.setTotalMaxFileSize(20000);
// 通过扩展名限制设定允许上传的文件,这里仅允许doc,txt文件。
// su.setAllowedFilesList("doc,txt");
// 通过扩展名限制设定禁止上传的文件,禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 实现文件上传
su.upload();
// 将上传文件全部保存到指定目录,必须保证images目录在应用程序根文件夹中存在
//int count = su.save("/images", su.SAVE_VIRTUAL);
int count = su.save("/images");
String p_image_temp="";
if(count==1) //重新上传了图片
{
com.jspsmart.upload.File file = su.getFiles().getFile(0);
p_image_temp="images\\"+file.getFileName();
}
else
p_image_temp=(String)session.getAttribute("p_iamge"); //没有重新上传图片

//获取表单其他信息
String p_id=su.getRequest().getParameter("p_id");
String p_type=su.getRequest().getParameter("p_type");
String p_name=su.getRequest().getParameter("p_name");
String p_price=su.getRequest().getParameter("p_price");
String p_quantity=su.getRequest().getParameter("p_quantity");
String p_description=su.getRequest().getParameter("p_description");
String p_time=String.valueOf(date.getMonth()+1)+"-"+date.getDate()+"-20"+String.valueOf(date.getYear()).substring(1);

jspSmartUpload使用初步的更多相关文章

  1. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  2. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  3. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

  4. 初步认识Node 之Node为何物

    很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了.    Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...

  5. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  6. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  7. Azure底层架构的初步分析

    之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...

  8. CozyRSS开发记录14-RSS源管理初步完工

    CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ...

  9. 初步了解CPU

    了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...

随机推荐

  1. [CTCI] 双栈排序

    双栈排序 题目描述 请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中. 给定一个int[] numbers(C++中 ...

  2. React Native在开发过程中遇到的一些问题(俗称:坑)

    4900 服务器地址错误 运行时产生以下错误:Could not connect to development server. 1.URL地址设置 问题: Could not connect to d ...

  3. jQuery函数继承 $.extend, $.fn.extend

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 行为类模式(九):策略(Strategy)

    定义 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. UML 优点 策略模式提供了管理相关的算法族的办法.策 ...

  5. bitcoin双花

    https://en.bitcoin.it/wiki/Irreversible_Transactions https://www.reddit.com/r/Bitcoin/comments/2e7bf ...

  6. linux 命令(43):bash 快捷键操作

    ctrl 命令行快捷键: CTRL+A: – 快速移动到行首. 我们假设你输入了像下面这样的命令.当你在第 N 行时,你发现在行首字符有一个输入错误 $ gind . -mtime -1 -type ...

  7. Python:sitecustomize 和 usercustomize

    Python提供了两个hook用于定制Python:sitecustomize 和 usercustomize,首先需要查看site包目录, 然后就可以在此目录下创建usercustomize.py文 ...

  8. iOS应用管理(优化)

    // //  ViewController.m //  01-应用管理 //  Created by apple on 17-5-14. //  Copyright (c) 2017年  All ri ...

  9. 旧的flex

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 【转】mysql 索引过长1071-max key length is 767 byte

    问题 create table: Specified key was too long; max key length is 767 bytes 原因 数据库表采用utf8编码,其中varchar(2 ...