多文件上传,还整个列表操作,坑爹!
效果图:
前台页面JSP:
from 要加 enctype="multipart/form-data"
<div id="upFile">
上传发票附件(需提交上传后才可进行下载):<input type="file" name="image" id="j" onchange="addfile('j')">
</div>
<div
style="height:125px;overflow-y:scroll;width: 800px;">
<table id="uploadTable" cellspacing="0">
<tr>
<th width="600px">名称</th>
<th width="200px">操作</th>
</tr>
</table>
</div>
js:
//上传文件隐藏并增加队列
var i=0;
var uploadArray = new Array();//记录删除的文件名称
function addfile(id){
$("#"+id).hide();
newid="j"+i+"";
$("#upFile").append("<input type='file' name='image' id='"+newid+"' onchange='addfile(""+newid+"")'>");
var arr= $("#"+id).val().split('\\');
var fileName=arr[arr.length-1];
var newRow = "<tr id='"+id+"' ><td id='fileNameTd' >"+fileName+"</td><td id='operTd'><input type='button' onclick='del(""+id+"")' value='删除'></td></tr>";
$("#uploadTable tr:last").after(newRow);
i++;
}
//删除待上传的文件
function del(id){
var arr= $("#"+id).children("td[id='fileNameTd']").text();
uploadArray.push(arr);
$("#uploadTable tr[id='"+id+"']").remove();
$("#"+id).remove();
}
后台:
需绑定
private File[] image; // 上传的文件
private String[] imageFileName; // 文件名称
private String[] imageContentType; // 文件类型
/**
* 多文件上传并返回需要保存的list
*
* 这里的fireName是保存的文件夹名称,保存的文件名称加了时间戳的避免重复
*/
public ArrayList<Uploadfile> upload(String fireName) {
ArrayList<Uploadfile> uploadfileList = new ArrayList<Uploadfile>();
try {
ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
String realpath = ServletActionContext.getServletContext()
.getRealPath("/upload/"+fireName);
File outfile= new File(realpath);
if(!outfile.isFile()){
outfile.mkdir();
}
if (image != null) {
File savedir = new File(realpath);
if (!savedir.getParentFile().exists())
savedir.getParentFile().mkdirs();
for (int i = 0; i < image.length; i++) {
String upFileName = System.currentTimeMillis()+ imageFileName[i];
File savefile = new File(savedir,upFileName);
FileUtils.copyFile(image[i], savefile);
Uploadfile up = new Uploadfile();
up.setFileName(imageFileName[i]);// 文件名称
up.setAddress("/upload/" + fireName + "/" + upFileName);// 文件地址
uploadfileList.add(up);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return uploadfileList;
}
相关推荐
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
一份关于信号与系统的大纲教程!!!!!!!!!!!!!
【课件】7.5.1散列表的基本概念
【课件】8.7.4置换-选择排序
unidac_10.2.1_d29pro.exe
此代码是基于 C、C++ 语言的 stm32 为微控制器编写的。 代码包含单独的部分:main、ini、USART code_for_display。 ADC_ini(模数转换器)是关于初始化ADC的。每当您触发模拟输入以开始转换时,它都会对模拟输入进行采样。它执行一个称为量化的过程,以决定电压电平及其在输出寄存器中推送的二进制代码。 USART(通用异步接收器-发射器)是一种外围通信硬件设备,它允许计算机通过 wifi 或蓝牙与串行连接的设备进行同步和异步通信。 code_for_display部分是包含 7 段显示的代码。 main 初始化ADC_ini,USART,code_for_display并开始接收信息的循环,显示它,将其发送到另一个设备,重复
大学生数据结构学习笔记和资料大全!
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
Android-Retrofit-Images在这个示例 Android 项目中
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
基于MSP430F5529的两路寻迹小车.zip
大学生 C/C++/JAVA/Python数据结构学习笔记和资料大全
Windows下的MDK Keil uVision4的demo工程,STM32F103的IC,开箱即可编译烧写体验: 已包含完整的freeRTOS依赖,可直观体验freeRTOS事件Event实现的多线程通信,代码方面主要通过未使用事件Event来实现多个线程间通信。 工程方面已经集成了freeRTOS的源码及相关事件Event的使用示例,配合博文《FreeRTOS 体验教程:7.如何用事件Event实现FreeRTOS多线程通信?》食用效果更佳。
头歌c语言实验答案 实验结果: 当输入示例字符串后,程序将输出预期结果: Character count: 49 Word count: 9 Line count: 3 这样的实验设计可以帮助学生加深对C语言字符串处理的理解,包括指针操作、字符分类函数的使用以及基本的逻辑控制。
C#学生管理系统.zip 学生选课及成绩查询系统是一个学校不可缺少的部分
Eclipse archetype-catalog.xml
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
基于MapReduce的招聘数据清洗项目是一种高效处理和整理大量招聘数据的方法。MapReduce是一种分布式计算模型,由谷歌提出,广泛应用于大规模数据处理。该项目旨在通过MapReduce框架,将原始招聘数据进行清洗、规范化和去重,以生成干净、结构化的数据,便于后续分析和使用。 项目首先通过Mapper函数对原始数据进行初步处理,提取出关键字段如职位名称、公司名称、薪资范围等,并进行初步清洗,如去除空格、特殊字符等。接着,Reducer函数对Mapper输出的数据进行进一步处理,合并重复项,并按照预定规则规范化数据格式。 该项目免费提供源码,便于用户下载、使用和修改。用户可以根据自己的需求,调整MapReduce任务的参数和逻辑,以适应不同的数据清洗要求。通过分布式处理,项目能够高效处理海量招聘数据,提高数据清洗的速度和准确性。 使用基于MapReduce的招聘数据清洗项目,不仅可以大幅度提高数据处理效率,还能保证数据的一致性和准确性,为企业的招聘分析和决策提供可靠的数据支持。项目的源码开放,使得更多用户能够受益于这一高效的数据处理工具。
unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;
高分项目,基于Unity3D开发实现的HeliHell Pack 直升机控制,内含完整源码+资源+unitypackage 很多小伙伴都想找能够开直升机的游戏,今天安利几款直升机模拟游戏。在这些游戏里大家会模拟一名直升机驾驶员,驾驶直升机做各种任务。大家可以通过调节方向盘来控制直升机的起降和转...