在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件)

2023-11-18

 
1、前端页面upload.jsp,后台处理程序UplodAction.java
2、struts.config的配置参数如下(没有设置 ActionForm):
<action input="/upload.jsp"  path="/save" scope="request" type="yhp.test.web.UploadAction" validate="false">
      <forward name="success" path="/list.do" />
    </action>
3、upload.jsp页面中主要部分代码
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri=" http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri=" http://java.sun.com/jstl/core" prefix="c" %>
<html:html>
<head>
<title> 测试Struts利用SmartUpload上传文件 </title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
<html:form action="/save.do" styleId="formItem" method="post"  enctype="multipart/form-data">
<html:hidden property="id"/>
<html:file property="serverpath" styleClass="input-text"></html:file>
</html:form>
</body>
</html:html>
4、UploadAction.java
import com.jspsmart.upload.File;
import com.jspsmart.upload.Files;
import com.jspsmart.upload.SmartUpload;

public ActionForward doBatchsave(ActionMapping actionMapping,
   ActionForm actionForm, HttpServletRequest httpServletRequest,
   HttpServletResponse httpServletResponse) throws Exception {
SmartUpload mySmartUpload = new SmartUpload();
  mySmartUpload.initialize(getServlet().getServletConfig(),httpServletRequest, httpServletResponse);  
  mySmartUpload.upload();
  //获取除文件以外的相关信息,例如upload.jsp中隐藏控件id的值
  String strId=(String)mySmartUpload.getRequest().getParameter("id");
  Files files=mySmartUpload.getFiles();
  Collection col=files.getCollection();
  Iterator it=col.iterator();
  while(it.hasNext()){
    File file=(File)it.next();    
    String oldFileName=file.getFileName();     
    String extname=file.getFileExt();
    String fileName=Sequence.getSequence()+"."+extname;//产生一个唯一的文件名
    file.saveAs("c://temp/"+fileName);    
  }
  return (actionMapping.findForward("success"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件) 的相关文章

  • C# 中将一个字符串拆分为另一个字符串

    我一直在使用Split 分割字符串的方法 但这似乎仅在您按字符分割字符串时才有效 有没有办法分割一个string 另一个字符串是按参数分割的 我尝试将拆分器转换为字符数组 但没有成功 换句话说 我想分割string THExxQUICKxx
  • 检查 href 中是否存在 jQuery 中的查询字符串

    我目前有一段 jQuery 用于附加带有一些位置信息的 URL jQuery a attr href function return this href location 123 abc 我的问题是大多数链接都有一个 其中使用上面的 就可以
  • 无需时间即可生成随机字符串?

    我知道如何使用 Runes 和播种 rand Init 在 go 中生成随机字符串time UnixNano 我的问题是 是否可以 使用 stdlib 在不使用当前时间戳 安全 的情况下播种 rand 此外 我问 因为仅仅依靠时间来为敏感操
  • 2.5 是否有一个 Python 模块提供类似于 2.6 中的 "string".format() 调用的功能?

    2 5 是否有免费的 Python 模块提供类似于 2 6 3 x 中的 string format 调用的功能 我正在为 2 5 编写新代码 我不想在新代码中使用 格式表达式 您可能会发现这里的代码可以适应您的需要 http svn py
  • 将 C++ 字符串发送到 C# 字符串。互操作性

    我是进程间通信的新手 需要一些帮助 我希望能够将字符串从 C 程序发送到 C 程序 我的问题是生成的字符串是乱码 这是我的代码 发送程序 C void transmitState char myStr HWND hWnd FindWindo
  • 如何使用 Unicode 十六进制值 (UTF-16) 在 Swift 中表达字符串

    我想在 Swift 中使用十六进制值编写 Unicode 字符串 我已阅读文档 https developer apple com library prerelease ios documentation Swift Conceptual
  • 在 Python 中使用 .split() 和 .join()

    我目前正在 Treehouse 中学习一些 Python 但我遇到了这个挑战 并且不知道我做错了什么 挑战分为三个部分 如下所示 包含提示和我编写的代码 我好像在第三部分犯了错误 Part 1 我想是时候吃点零食了 幸运的是 我有一串各种各
  • Java 9 中紧凑字符串和压缩字符串的区别

    有什么优点紧凑的字符串 http openjdk java net jeps 254JDK9 中的压缩字符串 压缩字符串 Java 6 和紧凑字符串 Java 9 都有相同的动机 字符串通常实际上是 Latin 1 因此浪费了一半的空间 和
  • 如何将 Pandas Dataframe 中的字符串转换为字符列表或数组?

    我有一个名为的数据框data 其中一列包含字符串 我想从字符串中提取字符 因为我的目标是对它们进行一次性编码并使之可用于分类 包含字符串的列存储在预测因子如下 predictors pd DataFrame data columns Seq
  • 如何使用 PHP 以任意顺序进行字符搜索(12 个字母,其中 6 个字母构成一个单词)?

    我整天都在想这个问题 似乎无法找出一种记忆有效且快速的方法 问题是 例如 我有这些信 e f j l n rr t t u w x 12 个字母 我正在找这个词 海龟 6 个字母 如何使用 php 找到完整范围 12 个单词 中所有可能的单
  • 在 Python 中对非英语文本进行分词

    我有一个波斯语文本文件 其中包含如下几行 6 7 10 11 我想从这一行生成一个单词列表 对我来说 单词边框是数字 比如上面一行中的 6 7 等 还有 特点 所以列表应该是 我想在 Python 3 3 中执行此操作 最好的方法是什么 我
  • 通过删除连续的重复项来减少字符串长度

    我有一个包含 2 个字段的 R 数据框 ID WORD 1 AAAAABBBBB 2 ABCAAABBBDDD 3 我想通过仅保留字母而不是重复中的重复项来简化具有重复字母的单词 e g AAAAABBBBB应该给我AB and ABCAA
  • 以点作为分隔符分割字符串

    我想知道我是否要在一个字符串上分割字符串 正确的方式 我的代码是 String fn filename split return fn 0 我只需要字符串的第一部分 这就是我返回第一项的原因 我问这个是因为我在 API 中注意到 意味着任何
  • codePointAt 和 charCodeAt 之间的区别

    有什么区别String prototype codePointAt and String prototype charCodeAt 在 JavaScript 中 A codePointAt 65 A charCodeAt 65 从 MDN
  • 替换 JSON 中的转义字符

    我想用空格替换 JSON 字符串中的 字符 我怎样才能做到这一点 我发现从 JSON 字符串中删除所有转义字符的最简单 最好的方法是将字符串传递到正则表达式 Unescape 方法 此方法返回一个没有转义字符的新字符串 甚至删除了 n t
  • 每第 n 个字符分割一个字符串

    在 JavaScript 中 这就是我们如何在每 3 个字符处分割一个字符串 foobarspam match 1 3 g 我正在尝试弄清楚如何在 Java 中做到这一点 有什么指点吗 你可以这样做 String s 1234567890
  • strlen - 字符串的长度有时会增加 1

    我正在做一些 C 智力题 在大多数情况下 我能够找到正确的答案 但我遇到了问题 我通过使用编译器知道正确的答案 但我不知道原因 看一下代码 char c abc 012 0x34 什么会strlen c 返回 使用标准 C 编译器 我的编译
  • boost::algorithm::join 的一个很好的例子

    我最近想用提升 算法 加入 http www boost org doc libs 1 41 0 doc html string algo reference html header boost algorithm string join
  • 反转java String.split()效果的方法? [复制]

    这个问题在这里已经有答案了 我正在寻找一种将字符串数组组合成分隔符的方法 细绳 与 split 相反 在我尝试自己编写之前想询问一下论坛 因为 JDK 拥有一切 据我所知 JDK 中没有任何方法可以实现这一点 阿帕奇公共语言 http co
  • C# 中单个 & 符号的第二个含义是什么?

    我在 C 中使用了单个与号 来表示 检查second条件语句即使第一个是false 但以下似乎是不同的意思 of 总而言之 谁能解释一下如何i 1在下面的例子中有效吗 List

随机推荐

  • nmap操作系统检测_Nmap操作系统检测

    nmap操作系统检测 rps include post 6632 rps include post 6632 One of the most popular feature of nmap is its Operating System d
  • 关于redis 5.0 新数据类型 Stream

    redis 5 0 新特性见 https www oschina net news 100931 redis 5 0 released p 2 对于stream 详细使用和解释见https www zhihu com question 27
  • 宋浩线性代数笔记(五)矩阵的对角化

    本章的知识点难度和重要程度都是线代中当之无愧的T0级 对于各种杂碎的知识点 多做题 复盘才能良好的掌握 良好掌握的关键点在于 所谓的性质A与性质B 是谁推导得谁
  • Pytorch学习(二)使用 torchvision

    Pytorch学习 二 使用 torchvision 训练图像分类器 准备数据集 torchvision 一 导入torchvision的库 二 使用datasets CIFAR10 函数加载数据库 三 DataLoader用多进程加速ba
  • tensorflow历史版本源码下载地址

    最近在tensorflow对应的网站上找到了tensorflow历史版本源码的下载地址 tensorflow历史版本下载地址
  • 导入MDF文件到数据库

    1 导入脚本 EXEC sp attach db dbname yhzm filename1 d jspyhzm mdf filename2 d jspyhzm log ldf 2 Microsoft SQL Server删除数据库提示出错
  • inno setup制作的安装包,安装后以管理员身份启动

    添加管理员权限 1 在 Setup 节点添加 PrivilegesRequired admin 2 进入安装目录 找到文件SetupLdr e32 这是一个二进制配置文件 需要用到ResHacker exe这个工具修改 找到
  • Win10 WSL2-CentOS7开启systemctl命令(2022-11-18更新)

    Win10 WSL2 CentOS7开启systemctl命令 2022 11 18更新 概述 文章基于如下环境 已开启WSL2的win10或者win11 WSL2下的CentOS7 下载地址为 CentOS7 自从win10支持WSL2以
  • lanelet安装

    1 https github com KIT MRT mrt cmake modules 2 sudo apt get install libpugixml dev sudo apt get install libpugixml1v5 3
  • 群体遗传学---admixture软件快速群体分群

    群体遗传学中测的很多个个体 得到了最终的SNP vcf文件 需要将其分成群体 看那几个物种聚在一起 一般使用的软件就是STRUCTURE 但是STREUTURE运行速度极慢 后面frappe软件提升了速度 但是也不是很快 admixture
  • php 解析 %e5%80%aa%e9%a3%9e,content.json

    title Linux安装Docker date 2020 11 08T14 54 29 000Z path 2020 11 08 Linux安装Docker tags name Linux Docker slug Linux Docker
  • loC和AOP使用扩展

    6 1多种方式实现依赖注入 6 1 1构造注入 6 1 2技能训练1 6 1 3使用p命名空间实现属性注入 Spring配置文件从2 0版本开始采用schema形式 使用不同的命名空间管理不同类型的配置使得配置文件更具扩展性 列如 我们曾使
  • [Python]pip查找包的历史版本

    pip查找包的历史版本 场景 在一些时候通过pip install xxx 安装第三方库的时候默认情况下安装最新版本 由于是最新版本有个稳定性就不得不考虑其中 所以部分场景会存在一些bug这就要求我们安装历史版本 对一些更新频率比较高的三方
  • Window&linux使用换行符的问题总结

    1 Window使用Git时 设置换行符格式 参见 https www jianshu com p 6ef90ce18ba2 2 vi下设置回车换行符等特殊符号 换行方式 在早期的打印机时代 开始新的一行要占用两个字符的时间 如果到了一行的
  • java.lang.UnsatisfiedLinkError

    java lang UnsatisfiedLinkError 原因 jni注册的时候匹配写错了 I B B 如下 static JNINativeMethod methods native getSps I B B void Native
  • Keras保存模型并载入模型继续训练

    我们以MNIST手写数字识别为例 import numpy as np from keras datasets import mnist from keras utils import np utils from keras models
  • PyQt5中的按钮3-QCommandLinkButton

    PyQt5中的按钮3 QCommandLinkButton QCommandLinkButton介绍 QCommandLinkButton举例 QCommandLinkButton介绍 CommandLinkButton 外观像是一个被设置
  • verilog赋多位值_关于verilog 赋值

    1 wire表示直通 即只要输入有变化 输出马上无条件地反映 reg表示一定要有触发 输出才会反映输入 2 只有 lt 表示非阻塞 给沿触发的寄存器赋值 是阻塞赋值 给电平触发的信号赋值 3 不指定就默认为1位wire类型 专门指定出wir
  • 计算机视觉论文-2021-07-19

    本专栏是计算机视觉方向论文收集积累 时间 2021年7月19日 来源 paper digest 欢迎关注原创公众号 计算机视觉联盟 回复 西瓜书手推笔记 可获取我的机器学习纯手推笔记 直达笔记地址 机器学习手推笔记 GitHub地址 1 T
  • 在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件)

    1 前端页面upload jsp 后台处理程序UplodAction java 2 struts config的配置参数如下 没有设置 ActionForm