uploadify控件上传文件and后台Struts2框架

2024-04-25 18:08

本文主要是介绍uploadify控件上传文件and后台Struts2框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

uploadify是基于jQuery的一种带进度条的文件上传控件,下面直接给出操作步骤:

1、到官网下载控件http://www.uploadify.com

2、解压控件放到项目Webcontent目录下

3、编写上传jsp页面,首先引入几个文件,

(1)<link href="uploadify/uploadify.css" rel="stylesheet" type="text/css" />

(2)<script type="text/javascript" src="jquery/1.11.3/jquery.min.js"></script>

(3)<script type="text/javascript" src="uploadify/jquery.uploadify.min.js"></script>

注意:uploadify控件基于jQuery,一定要在jQuery文件之后引入uploadify,否则无效!!!

<input type="file" name="file" id="upload"/>
<button type="button" id="startupload" class="btn btn-primary" style="width:134px;" οnclick="javascript:$('#upload').uploadify('upload','*')">开始上传</button>
<button type="button" id="cancelupload" class="btn btn-primary" style="width:134px;" οnclick="javascript:$('#upload').uploadify('cancel')">取消上传</button>

4、编写js文件,通过$("#upload").uploadify({});引用控件,控件含有很多参数和方法,在此不做一一介绍,主要介绍常容易犯错的几个,'swf':解压包中的uploadify.swf flash文件,'uploader':后台接收上传文件的action(如"FileUpLoad.action"),'fileObjName':此处的参数值是Jap页面中的input name,后台接收action中定义的文件变量名也必须与此一致,否则接收不到文件。至此前台代码编写工作就完成了。

5,、后台接收文件我采用Struts2框架。首先创建一个action类FileUpLoadAction,定义四个主要的变量,private File file;private String fileContentType;private String fileFileName;private String savePath;然后在public String execute(){

String root = ServletActionContext.getServletContext().getRealPath(getSavePath());
    InputStream is = new FileInputStream(getFile()); 
       OutputStream os = new FileOutputStream(new File(root, "WebPlugin.exe")); 
    byte[] buffer = new byte[1024];
    int len = 0;
    while((len=is.read(buffer,0,buffer.length))!=-1){
    os.write(buffer,0,len);
    }

is.close();
    os.close();
    return Action.SUCCESS;

}

方法中执行文件接收操作,注意:此操作只是从.tmp临时文件中读出文件到保存处,故通过以上几个变量获取的都只是临时文件的信息。

6、最后就是配置Struts.xml文件了,定义一个action,如:

<action name="FileUpLoad" class="com.gmi.client.FileUpLoadAction">
<param name="savePath">/download</param>
<result name="input">/fileupload.jsp</result>
<result name="success">/loadsucc.jsp</result>
</action>

完成以上这些操作就可以实现文件上传了!!!

但是,uploadify也存在缺陷,采用uploadify控件上传文件,Firefox浏览器存在session丢失的问题。

解决方法:采用'formData'参数向后台传递数据,如session丢失,可以通过该参数向后台提交sessionID('formData':{"sessionid":sid},)。后台采用req.getParameter(sessionID);的方式接收数据。



这篇关于uploadify控件上传文件and后台Struts2框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935410

相关文章

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1