浅析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实现多文件上传功能,相信大家看完后心中都有自己的想法了,如果觉得这篇文章不错,可以多多推荐给身边的朋友哦。
