浅析AjaxFileUpload+Struts2实现多文件上传功能
来源:爱站网时间:2019-07-24编辑:网友分享
在Struts下有很多不需要刷新就可以上传文件的方法,但是我使用的是Ajax文件上传,爱站技术频道小编为大家浅析AjaxFileUpload+Struts2实现多文件上传功能,希望对你学习有帮助!
在Struts下有很多不需要刷新就可以上传文件的方法,但是我使用的是Ajax文件上传,爱站技术频道小编为大家浅析AjaxFileUpload+Struts2实现多文件上传功能,希望对你学习有帮助!
单文件和多文件的实现区别主要修改两点,
一是插件ajaxfileupload.js里接收file文件ID的方式
二是后台action是数组形式接收
1、ajaxFileUpload文件下载地址http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
2、引入jquery-1.8.0.min.js、ajaxFileUpload.js文件
3、文件上传页面核心代码
以上fileElementId属性接收的files参数为['file1','file2','file3']
由于是多文件,所以我们需要修改ajaxfileupload.js 找到以下代码
var oldElement = jQuery('#' + fileElementId); var newElement = jQuery(oldElement).clone(); jQuery(oldElement).attr('id', fileId); jQuery(oldElement).before(newElement); jQuery(oldElement).appendTo(form);
修改为:
for(var i in fileElementId){ var oldElement = jQuery('#' + fileElementId[i]); var newElement = jQuery(oldElement).clone(); jQuery(oldElement).attr('id', fileId); jQuery(oldElement).before(newElement); jQuery(oldElement).appendTo(form); }
4、文件上传Action
public class FileAction { private File[] file; //文件 private String[] fileFileName; //文件名 private String[] filePath; //文件路径 private String downloadFilePath; //文件下载路径 private InputStream inputStream; /** * 文件上传 * @return */ public String fileUpload() { String path = ServletActionContext.getServletContext().getRealPath("/upload"); File file = new File(path); // 判断文件夹是否存在,如果不存在则创建文件夹 if (!file.exists()) { file.mkdir(); } try { if (this.file != null) { File f[] = this.getFile(); filePath = new String[f.length]; for (int i = 0; i
5、struts配置
text/html application/octet-stream inputStream attachment;filename=${fileName} 4096
浏览器中输入:http://localhost:8080/struts_ajaxfileupload/index.jsp 即可进行文件上传
如图:
以上就是爱站技术频道小编介绍的关于浅析AjaxFileUpload+Struts2实现多文件上传功能,相信大家看完后心中都有自己的想法了,如果觉得这篇文章不错,可以多多推荐给身边的朋友哦。