Struts2+uploadify多文件上传实例
作者:Jaaaaaaaava 时间:2023-03-19 07:53:35
本文实例为大家分享了Struts2+uploadify多文件上传的具体代码,供大家参考,具体内容如下
首先我这里使用的是 Jquery Uploadify3.2的版本
导入相关的CSS JS
<link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css" rel="external nofollow" >
<script src="<%=basePath%>js/jquery.min.js"></script>
<script src="<%=basePath%>js/uploadify/jquery.uploadify.min.js"></script>
接下来是 上传的 JSP 页面代码
<form action="" method="post" >
<input type="file" name="img_file" id="img_file">
<div id="uploadfileQueue" ></div>
<div id="imgs" ></div>
<div id="dialog-message" ></div>
</form>
<p>
<a href="javascript:void(0);" rel="external nofollow" onclick="myUpload()">上传</a>
<a href="javascript:$('#img_file').uploadify('cancel')" rel="external nofollow" >取消上传</a>
</p>
这里是最关键的JS 代码,有注释
$(function(){
$("#img_file").uploadify({
auto:false,//是否自动上传
height: 30,
buttonText:'选择图片',
cancelImage:'<%=basePath%>img/uploadify/uploadify-cancel.png',
swf : '<%=basePath %>js/uploadify/uploadify.swf',
// expressInstall:'js/uploadify/expressInstall.swf',
uploader : '<%=basePath%>json/fileUploadAction.action', //后台处理上传文件的action
width : 120 ,
'multi': true, //设置为true将允许多文件上传
'filesSelected': '4',
queueID:'uploadfileQueue',
fileObjName:'img_file', //与后台Action中file属性一样
/*
formData:{ //附带值
'userid':'111',
'username':'tom',
'rnd':'111'
},
*/
fileTypeDesc:'上传文件支持的文件格式:jpg,jpge,gif,png',
fileTypeExts:'*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png
queueSizeLimit : 4,//只能一次上传4张图片
// simUploadLimit:1,//一次可以上传1个文件
fileSizeLimit:'2097152',//上传文件最大值 单位为字节 2M
//返回一个错误,选择文件的时候触发
onSelectError:function(file, errorCode, errorMsg){
switch(errorCode) {
case -100:
alert("上传的文件数量已经超出系统限制的4个文件!");
break;
case -110:
alert("文件 ["+file.name+"] 大小超出系统限制的2M大小!");
break;
case -120:
alert("文件 ["+file.name+"] 大小异常!");
break;
case -130:
alert("文件 ["+file.name+"] 类型不正确!");
break;
}
}, //
//上传到服务器,服务器返回相应信息到data里
onUploadSuccess:function(file, data, response){
var objs = eval('('+data+')');
var phtml = "<span><img style='width:150;height:150' src='/uploads/"+objs.filename+"'></span>";
if($("#imgs span").length==0){
$("#imgs").html(phtml);
}else{
$("#imgs span:last").after(phtml);
}
},
onSelect : function(file) {
//alert(file.name);
},
//removeCompleted:true,//上传的文件进度条是否消失
requeueErrors:false,
// removeTimeout:2,//进度条消失的时间,默认为3
progressData:"percentage",//显示上传的百分比
onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) { //这里是取消的时候发生
// $("#dialog-message").html(errorString);
}
});
});
//上传文件
function myUpload(){
$("#img_file").uploadify('upload','*');
}
java 上传的Action 代码
/**
* 上传文件的Action
* @author wzh
*
*/
@Controller
@Scope("prototype")
public class FileUploadAction extends BaseAction {
private File img_file;
private String img_fileContentType;//格式同上"fileName"+ContentType
private String img_fileFileName;//格式同上"fileName"+FileName
private String savePath;//文件上传后保存的路径
private Map<String, Object> dataMap = new HashMap<String, Object>();
@Override
/***
* 上传文件
*/
public String execute() throws Exception{
System.out.println("savePath"+getSavePath());
File dir=new File(getSavePath());
System.out.println(dir.getAbsolutePath());
//判断是否存在路径
if(!dir.exists()){
dir.mkdirs();
}
//当前上传的文件
File file=getImg_file();
//获得后缀
String ext =FileUtil.getExtensionName(getImg_fileFileName());
String newFileName = UUID.randomUUID()+ext;
FileOutputStream fos=new FileOutputStream(getSavePath()+"//"+newFileName);
FileInputStream fis=new FileInputStream(getImg_file());
byte []buffers=new byte[1024];
int len=0;
while((len=fis.read(buffers))!=-1){
fos.write(buffers,0,len);
}
fos.close();
fis.close();
// String uploadFileName = getImg_fileFileName();
dataMap.put("filename",newFileName);
return SUCCESS;
}
<!-- 文件上传相关的 -->
<action name="fileUploadAction" class="fileUploadAction">
<param name="savePath">E:/Tomcat6.0/webapps/uploads</param>
<result type="json">
<param name="root">dataMap</param>
</result>
</action>
配置完以上的基本就OK了。
来源:https://blog.csdn.net/CJaver/article/details/38317455
标签:Struts2,uploadify,文件上传
0
投稿
猜你喜欢
Maven生命周期和及插件原理用法详解
2021-09-17 09:47:19
SpringBoot使用POI进行Excel下载
2022-06-14 13:16:13
Android监听手机电话状态与发送邮件通知来电号码的方法(基于PhoneStateListene实现)
2022-12-07 09:03:44
Flutter Android应用启动白屏的解决方案
2022-10-02 04:08:04
springboot多环境配置文件及自定义配置文件路径详解
2021-09-30 03:55:54
Springboot-Shiro基本使用详情介绍
2022-10-13 03:02:42
Java实现人机猜拳小游戏
2023-10-07 16:11:37
Kotlin 协程与挂起函数及suspend关键字深入理解
2023-09-19 01:04:25
android文件上传示例分享(android图片上传)
2022-10-07 21:14:11
Recyclerview添加头布局和尾布局、item点击事件详解
2022-04-19 12:38:12
EasyExcel实现导入+各种数据校验功能
2022-05-12 13:05:26
SpringBoot集成MybatisPlus报错的解决方案
2022-06-28 05:03:20
Java 队列实现原理及简单实现代码
2021-07-19 05:12:56
Android定时器Timer的停止和重启实现代码
2022-10-03 23:25:43
Java 17 更快的 LTS 节奏
2023-07-08 11:36:19
使用springboot logback动态获取application的配置项
2023-09-03 21:21:41
java框架之maven是用来做什么的
2023-04-20 21:59:43
AsyncTask官方文档教程整理
2023-07-31 20:25:08
详细了解JAVA NIO之Buffer(缓冲区)
2022-08-18 00:59:28
Java实现单向链表的基本功能详解
2022-12-18 10:57:02