ajaxFileUpload+Struts2文件上传
来源:互联网 发布:万网二手域名交易平台 编辑:程序博客网 时间:2024/06/05 19:56
前台:
1. 引入ajaxFileUpload.js文件
2. 前台通过input type=file文件的onchange方法去调用上传js代码
<input id="logoPicUrl" name="logoPicUrl" onchange="uploadFile(this);" type="file">
如果想在执行ajax代码以后控制文件显示的信息,就需要做隐藏的type=file控件,因为不同浏览器对这个控件支持不一样,显示的信息也不同,我的做法如下:
<input id="logoPicUrl" name="logoPicUrl" onchange="uploadFile(this);" type="file" >
<div >
<a href="javascript:void(0)" onclick='document.getElementById("logoPicUrl").click();'>
<input id="logoFile" name="model.logoPicUrl" readonly="true" placeholder="点击选择上传的Logo"/>
</a>
</div>
3. js代码
这里面是用document去获取的控件里面的文件,jQuery有时会获取不到,原因不太清楚,如果想改用jQuery请注意一下这个问题。
uploadFile = function(x){
var logofile = document.getElementById("logoPicUrl").files[0];
if( logofile instanceof Object) {
if(x.name=="logoPicUrl"){
//判断上传文件的类型
var fileName=logofile.name;
var fileType=fileName.substring(fileName.lastIndexOf("."),fileName.length).toUpperCase();
if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(fileType)){
layer.alert("只能上传图片类型");
$("#logoPicUrl").val("");
return;
}
var requestURL="${contextPath}/groupAction!uploadFile.${actionExtension};
$.ajaxFileUpload({
url: requestURL,
secureuri: false, //一般设置为false
type:'post',
fileElementId: 'logoPicUrl', // 上传文件的id、name属性名
dataType:'text',
cache:false,
success: function(data, status){$("#logoFile").val(data);},
error: function(data, status, e){ }
});
}
}
}
在ajaxFileUpload方法里面,如果要返回数据,要把dataType设置为'text',否则获取的会是DOM或者其他的东西。有时浏览器会有严重的缓存现象,例如你第一次上传了一个图片,第二次重新上传一张,但后台获取的还是第一次上传的文件,这时要把cache设置成false。
后台:
1.之前查到很多资料说后台想获取要上传的文件,只需要在后台定义一个File类型的文件,名字与前台ajaxFileUpload中指定的fileElementId的type=file控件的name相同(File logoPicUrl),以及两个String类型的用于存储文件名称和类型的字段(String logoPicUrlFileName,logoPicUrlContentType),struts2框架会将文件信息set到这些属性里,但是我在使用过程中没成功,我是从request里面取的。
2.MultiPartRequestWrapper req=(MultiPartRequestWrapper) getRequest();
logoPicUrl = req.getFiles("logoPicUrl")[0];
3.如果是SpringMVC框架直接定义一个MultipartFile 的实例就可以接收到
4.如果想往前台传数据,可以使用writeResponse("想要传送的数据");
- ajaxFileUpload+Struts2文件上传
- ajaxfileupload+struts2文件上传、下载
- ajaxFileUpload+struts2实现异步上传文件
- java文件上传--基于ajaxFileUpload+struts2
- java文件上传--基于ajaxFileUpload+struts2
- ajaxFileUpload+struts2实现多文件上传
- ajaxFileUpload+struts2实现异步上传文件
- java文件上传--基于ajaxFileUpload+struts2
- struts2+ajaxfileupload.js实现多文件上传
- Struts2 +jquery+ajaxfileupload 实现无刷新上传文件
- Struts2 +jquery+ajaxfileupload 实现无刷新上传文件
- ajaxFileUpload 异步上传文件配合Struts2的简单使用
- ajaxfileupload ajax文件上传
- ajaxfileupload文件上传
- ajaxfileupload 多文件上传
- ajaxFileUpload插件上传文件
- ajaxFileupload多文件上传
- ajaxFileUpload 多文件上传
- CentOS7修改时区的正确姿势
- 7.Reverse Integer
- Android安装apk时报 INSTALL_FAILED_INSUFFICIENT_STORAGE 错误的解决方法
- javascript数据结构7-二叉搜索树(BST)
- centos下在线安装配置jdk
- ajaxFileUpload+Struts2文件上传
- lucene6.2.1测试用例
- vim常用快捷键
- javascript数据结构8-图(Graph)
- 找工作期间的一些想法
- 【SSH】常用的jar管理
- centos下面配置tomcat
- Leetcode 98. Validate Binary Search Tree
- 【Win32笔记四】Mesasge的定义和发送——消息队列