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

相关文章

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

Java实现MinIO文件上传的加解密操作

《Java实现MinIO文件上传的加解密操作》在云存储场景中,数据安全是核心需求之一,MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,下面我们来看看如何通过Java... 目录一、背景与需求二、技术选型与原理1. 加密方案对比2. 核心算法选择三、完整代码实现1. 加密上

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component