webwork下uplodify的使用步骤:
1.修改web.xml文件中的拦截器配置,如下:
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
2.在类路径下的webwork.properties中修改有关上传功能的配置,如下:
### multipart setting
webwork.tag.altSyntax = true
webwork.multipart.saveDir=javax.servlet.context.tempdir
webwork.multipart.maxSize=2097152
webwork.multipart.parser=jakarta
3.新建以xwork_upload.xml配置文件,文件内容如下:
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">
<xwork>
<package name="upload" extends="webwork-default" namespace="/upload">
<interceptors>
<interceptor name="upload" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor">
<param name="maximumSize">10000000</param>
</interceptor>
<interceptor-stack name="uploadStack">
<interceptor-ref name="upload" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="WSStack" />
<action name="doImageUpload" class="net.survey.admin.UploadAction" method="doImageUpload">
<interceptor-ref name="params" /><!-- 将请求中的参数设置到Action中去 -->
<interceptor-ref name="basicStack" />
<interceptor-ref name="uploadStack" />
</action>
</package>
</xwork>
4.将刚刚新建的xwork_upload.xml配置文件引入到xwork.xml配置文件中
<include file="xwork_upload.xml"/>
5.根据配置文件新建net.survey.admin.UploadAction,内容如下:
public class UploadAction extends ActionSupport implements ServletRequestAware, ServletResponseAware{
private HttpServletRequest request;
private HttpServletResponse response;
private File images; //和在JS中指定的fileObjName的值相同
private String imagesFileName; //[fileName]FileName 获得上传文件的名称
private String imagesContentType;//[fileName]ContentType 获得上传文件的类型
public String doImageUpload() throws Exception {
upload("img", imagesFileName, images);
return null;
}
public void upload(String dir, String name, File file) throws Exception{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
String savePath = new String(request.getServletContext().getRealPath("/") + "\\upload\\" + dir);
if(!new File(savePath).exists())new File(savePath).mkdirs();
String file_name = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss").format(new Date()) + "_" + new String(name.getBytes("gbk"), "UTF-8"); // 唯一且不重复的文件名
//文件名形如:ID.文件后缀
FileOutputStream fos = new FileOutputStream(savePath + "\\" + file_name);
FileInputStream fis = new FileInputStream(file);
Streams.copy(fis, fos, true);
/*byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
fis.close();*/
PrintWriter out = response.getWriter();
//这个地方不能少,否则前台得不到上传的结果
out.write("1");
out.close();
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public File getImages() {
return images;
}
public void setImages(File images) {
this.images = images;
}
public String getImagesFileName() {
return imagesFileName;
}
public void setImagesFileName(String imagesFileName) {
this.imagesFileName = imagesFileName;
}
public String getImagesContentType() {
return imagesContentType;
}
public void setImagesContentType(String imagesContentType) {
this.imagesContentType = imagesContentType;
}
}
6.建立jsp页面,内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试CRUD</title>
<link href="../uploadify/uploadify.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../uploadify/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../uploadify/jquery.uploadify.v2.1.4.js"></script>
<script type="text/javascript" src="../uploadify/swfobject.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#images").uploadify({
/*注意前面需要书写path的代码*/
'uploader' : '<%=basePath%>uploadify/uploadify.swf',
'script' : '<%=basePath%>upload/doImageUpload.action',
'cancelImg' : '<%=basePath%>uploadify/cancel.png',
'folder' : '<%=basePath%>upload/img',
'queueID' : 'imageQueue', //和存放队列的DIV的id一致
'fileDataName' : 'images', //和以下input的name属性一致
'removeCompleted': false,
'auto' : false, //是否自动开始
'multi' : true, //是否支持多文件上传
'buttonText' : '选择图片', //按钮上的文字
'simUploadLimit' : 5, //一次同步上传的文件数目
'sizeLimit' : 2097152, //设置单个文件大小限制2M
'queueSizeLimit' : 5, //队列中同时存在的文件个数限制
'fileDesc' : '支持格式:jpg/gif/jpeg/png/bmp.', //如果配置了以下的'fileExt'属性,那么这个属性是必须的
'fileExt' : '*.jpg;*.gif;*.jpeg;*.png;*.bmp',//允许的格式
'onAllComplete' :function(event,data)
{
$('#img_result').html(data.filesUploaded +'个图片上传成功');
},
onError: function(event, queueID, fileObj) {
alert("图片:" + fileObj.name + "上传失败");
},
onCancel: function(event, queueID, fileObj){
// alert("取消了" + fileObj.name);
}
});
});
</script>
</head>
<body>
<div style="width:800px; height:600px; border:1px solid red; margin:0px auto;">
<form action="<%=request.getContextPath() %>/xxx.action" method="post">
<table>
<tr><td class="td_right">图片:</td>
<td>
<input type="file" name="images" id="images"/>
<a href="javascript:;" onClick="javascript:$('#images').uploadifyUpload()">开始上传</a> <a href="javascript:jQuery('#images').uploadifyClearQueue()">取消所有上传</a> <span id="img_result" style="font-size: 13px;color: red"></span>
<div id="imageQueue"></div>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
说明:该附件中的uploadify插件已经修复了buttonText不支持中文这一bug。
相关推荐
3 上传大文件问题 若文件太大可以设置以下步骤:1)初始化参数successTimeout处配置时间长点;2) 修改struts xml 添加struts multipart maxSize的配置;3) 修改服务器端可上传文件大小的限制 在文件 usr local ...
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。 支持单文件或多文件上传,可控制并发上传的文件数 在服务器端支持各种语言与之配合使用,诸如PHP,.NET,Java…… 通过参数可配置上传文件类型及...
关于JQuery上传插件Uploadify使用详解网上一大把,基本上内容都一样。我根据网上的步骤配置完成后,会报一些错误,而我根据这些错误去网上找解决方案,却没有相关资料,所以为了不让更多的朋友走弯路,我把我遇到的...
Uploadify简单说来,是基于Jquery的一款文件上传插件。它的功能特色总结如下: 支持单文件或多文件上传,可控制并发上传的文件数 在服务器端支持各种语言与之配合使用,诸如PHP,.NET,Java…… 通过参数可配置...
主要介绍了JQuery上传插件Uploadify使用,文章给出详细的步骤来实现一个简单的上传功能,感兴趣的小伙伴们可以参考一下
一、jquery uploadify自我介绍: (1)、大家好,我是jquery插件大家族中... 易于扩展,可控制每一步骤的回调函数(onSelect, onCancel……) 通过接口参数和CSS控制外观 Uploadify主页地址:http://www.uploadif
首先按下面的步骤来实现一个简单的上传功能。 1 创建Web项目,命名为JQueryUploadDemo,从官网上下载最新的版本解压后添加到项目中。 2 在项目中添加UploadHandler.ashx文件用来处理文件的上传。 3 在项目中添加...
主要介绍了Thinkphp5+uploadify实现的文件上传功能,结合实例形式分析了Thinkphp5结合uploadify实现文件上传的具体步骤、原理与相关操作技巧,需要的朋友可以参考下
主要介绍了PHP实现多图上传的方法,实例分析了php结合uploadify插件实现多图上传的具体步骤与相关操作技巧,需要的朋友可以参考下
bootstrap-fileinput源码:...这个插件主要是介绍如何处理图片上传的处理操作,原先我的Excel导入操作使用的是Uploadify插件,可以参考我随笔《附件上传组件uploadify的使用》,不过这个需要Flash控件
1、前端用到js:uploadify(下载地址:http://www.uploadify.com/download/)、layer (下载地址:http://layer.layui.com/),下载之后把它们放在你的项目里 列如 2、根据你的需要在你项目适当的位置建立上传文件的...
通过后台系统管理控制每个用户的操作权限及数据权限,另包含很多easyui的复杂运用,是学习easyui的一个很好项目实例,也还运用了很多的jquery插件,比如报表生成插件highcharts,上传插件uploadify,步骤插件ystep等...
主要介绍了springboot带有进度条的上传功能,结合完整实例形式分析了springboot带进度条上传的原理、实现步骤与相关操作技巧,需要的朋友可以参考下
1.支持单文件或多文件上传,可控制并发上传的文件数 2.在服务器端支持各种语言与之配合使用,诸如PHP,.NET,Java…… ...5.易于扩展,可控制每一步骤的回调函数(onSelect, onCancel……) 6.通过接口参数和CSS控制外观
3、万众期待的请假流程无限级自定义诞生了,并且,请假流程会根据申请人权限自动省略不必要的步骤(比如说部长的申请单无需组长进行第一审批了,即使该部门的请假流程存在组长这一级审批) 4、调整休假设定、批量...