将多张图片打包成zip包,一起上传
1、前端页面
<div class="mod-body" id="showRW" style="text-align: center;font-size: 14px;letter-spacing: 1px;line-height: 24px;padding-bottom: 10px;height:400px;background:#FFFFFF !important;padding-top:140px;">
<table style="width: 100%;background:#FFFFFF !important;">
<tr>
<td style="text-align: center;">
<span>选择类型:</span>
<select name="photoType" id="photoType" style="width:200px;"> </select>
</td>
</tr>
<tr>
<td style="text-align: center;">
<span>选择文件:</span>
<input type="file" style="width:200px;padding: 0 0px !important;" name="importImg" id="importImg">
</td>
</tr>
<tr style="text-align: center;">
<td >
<input id="submitBtn" type="button" class="button" value="提交" style="width:130px;background: #263552;color: #FFF;border: 0px;border-radius: 2px;height: 28px;"/>
</td>
</tr>
<tr style="text-align: center;">
<td >
<div style="display: inline-block;width: 50%;line-height: 30px;text-align: left;padding-left: 550px;">
<span style="color:red;">注意:</span><br>
<span>1、仅支持图片打包成ZIP包,不能直接将文件夹打压缩包</span><br/>
<span>2、上传的每张图片大小须在100K以内</span>
</div> </td>
</tr>
</table>
</div>
2、js代码
//提交
$("#submitBtn").click(function(){ var photoTypeSelect = $("#photoType").val();
if(photoTypeSelect == -1){
alert("请选择照片墙类型");
return false;
} var importFile = $("#importImg")[0].files[0];
if($("#importImg").val() == ''){
alert("请选择文件!");
return false;
}else{
var fileNameIndex = importFile.name.lastIndexOf(".");
var fileName = importFile.name.substring(fileNameIndex,importFile.name.length);
if((fileName.toLowerCase() != ".zip" )){
alert("文件必须为.zip类型");
window.location.href='#';
return false;
}
}
$("#mask").show();
$("#shDiv1").show();
var formData = new FormData();
formData.append("importFile", importFile);
formData.append("photoTypeSelect", photoTypeSelect);
formData.append("conId",conId);
$.ajax({
url:"<%=basePath%>/Conferences/photoWallAction.do?method=importPhotoWall",
type:"post",
dataType:"json",
data: formData,
dataType:"json",
// 告诉jQuery不要去处理发送的数据
processData: false,
// 告诉jQuery不要去设置Content-Type请求头
contentType: false,
async:false,
success:function(json){
$("#mask").hide();
$("#shDiv1").hide();
if(json.state == 1){
if(confirm('导入成功!')){
window.location.reload();
}
}else{
if(confirm('导入失败!')){
window.location.reload();
}
}
},
error:function(){
if(confirm('导入失败!')){
window.location.reload();
}
}
}) })
3、后台数据处理
@RequestMapping(params = "method=importPhotoWall",method = RequestMethod.POST)
public void importPhotoWall(Integer conId,Integer photoTypeSelect,HttpServletRequest request,HttpServletResponse response,ModelMap model){
try {
JSONObject result = new JSONObject();
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
MultipartFile mFile = mRequest.getFile("importFile");
String theUrl = request.getScheme()+"://"+request.getServerName()+request.getContextPath()+"/";
String fileUrl = request.getSession().getServletContext().getRealPath("files");
try {
File file11 = new File(fileUrl+"/photoWallZip");
if(!file11.exists()){
file11.mkdirs();
}
File file = new File(fileUrl+"/photoWallZip","zip"+conId+".zip");
mFile.transferTo(file); //解压到目的文件夹
File file1 = new File(fileUrl+"/photoWall/"+conId+"/");
if(!file1.exists()){
file1.mkdirs();
} if(file != null){// 压缩文件夹存在
ZipFile zf = new ZipFile(fileUrl+"/photoWallZip/zip"+conId+".zip",Charset.forName("GBK"));
Enumeration<?> entries = zf.entries();
while(entries.hasMoreElements()){
byte[] bytes = new byte[2048];
int count = -1;
ZipEntry entry = (ZipEntry)entries.nextElement();
String fileName = entry.getName();
String saveUrl = "";
if(entry.isDirectory()){ }else{
fileName = new Date().getTime()+fileName.substring(fileName.lastIndexOf("."), fileName.length());
saveUrl = fileUrl+"/photoWall/"+conId+"/"+fileName;
File file2 = new File(saveUrl);
file2.createNewFile(); //创建文件
InputStream is = zf.getInputStream(entry);
FileOutputStream fos = new FileOutputStream(file2);
BufferedOutputStream bos = new BufferedOutputStream(fos, 2048);
while((count = is.read(bytes)) > -1)
{
bos.write(bytes, 0, count);
}
bos.flush();
bos.close();
fos.close();
is.close();
}
List<PhotoWall> phoList = photoWallService.getPhotpWallByConIdAndTypeasc(conId, photoTypeSelect);
PhotoWall photoWall = new PhotoWall();
photoWall.setConferencesId(conId);
photoWall.setCreateTime(new Date());
if(phoList != null && phoList.size() > 0){
if(phoList.get(0) != null && phoList.get(0).getLastDoTime() != null){
photoWall.setLastDoTime(new Date(phoList.get(0).getLastDoTime().getTime()+60000));
}else{
photoWall.setLastDoTime(new Date());
}
}else{
photoWall.setLastDoTime(new Date());
}
photoWall.setCreateUserId(-1);
photoWall.setCreateUserType(-1);
photoWall.setImageUrl(theUrl+"files/photoWall/"+conId+"/"+fileName);
photoWall.setLaudCount(0);
photoWall.setState(2);
photoWall.setTypeId(photoTypeSelect);
photoWallService.saveOrUpdateObject(photoWall);
}
zf.close();
if(!file.exists()){
System.out.println("删除文件失败,文件不存在");
}else{
if (file.isFile())
if(!file.delete()){//判断是否删除完毕
System.gc();//系统进行资源强制回收
file.delete();
}
System.out.println("删除成功");
}
}
} catch (Exception e) {
result.accumulate("state", 0);
e.printStackTrace();
}
result.accumulate("state", 1);
writeToJson(response, result.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
将多张图片打包成zip包,一起上传的更多相关文章
- 用JAVA把内存里的二进制文件打包成ZIP包
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...
- [Java] Java 打包成jar包 和 解压jar包
解压jar包 jar xf xxx.jar 打包成jar包 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] ...
- java批量下载,将多文件打包成zip格式下载
现在的需求的: 根据产品族.产品类型,下载该产品族.产品类型下面的pic包: pic包是zip压缩文件: t_product表: 这些包以blob形式存在另一张表中: t_imagefile表: 现在 ...
- spring-boot 打包成 war包发布
1.用maven打包成war包 2.将war包用zip方式打开,删除里面的tomcat-embed相关的4个包,删除spring-boot-tomcat包 3.将删除了tomcat相关嵌入包后的war ...
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
(1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2.右键点击项目,Bulid Path->Configure Build Path3.在设置Libraie ...
- 【spring boot】idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到(转)
转自:https://www.cnblogs.com/sxdcgaq8080/p/7727249.html 接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p ...
- springboot中使用freemarker生成word文档并打包成zip下载(简历)
一.设计出的简历模板图以及给的简历小图标切图 二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件: 三.直 ...
- Ubuntu下将现有的文件打包成deb包
转自:http://www.linuxidc.com/Linux/2008-04/12297.htm deb是Debian Linux的软件包格式.一般来说是需要通过编译源码然后制作deb包,今天由于 ...
- 【Android端】代码打包成jar包/aar形式
Android端代码打包成jar包和aar形式: 首先,jar包的形式和aar形式有什么区别? 1.打包之后生成的文件地址: *.jar:库/build/intermediates/bundles/d ...
随机推荐
- java应用性能分析
dump内存信息 通过jps -lm找到进程id jmap -dump:format=b,file=./heap.hprof <pid> 使用jprofile等分析内存占用情况 dump线 ...
- 零基础IDEA整合SpringBoot + Mybatis项目,及常见问题详细解答
开发环境介绍:IDEA + maven + springboot2.1.4 1.用IDEA搭建SpringBoot项目:File - New - Project - Spring Initializr ...
- Python字典的一点用法
#python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 字典是一种映射类型的数据结构,(映射一般是数学中的术语,指两个元素之间元素相互对应的关系).字典和序列有很大的不同,序列类 ...
- unigui的页面布局使用
(unigui的页面布局还是很强大的,基本什么的排版都能搞好.前面部分为原文章翻译,翻译不一定很准确,就能看吧,后面有使用说明,有什么不明白的欢迎加我QQ(910300653)一起交流学习) 一.布局 ...
- Python机器学习(基础篇---监督学习(支持向量机))
支持向量机(分类) 支持向量机分类器根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个.我们会发现决定其直线位置的样本并不是所有训练数据,而是其中的两个空间间隔最小的两个不同类别的数据点,而我们 ...
- 关于redis的安装
下载redis 我这边下载redis4.0.1版本, 然后解压 然后执行yum -y install gcc gcc-c++ libstdc++-devel 然后cd //qbtapp/redis-4 ...
- 学号 20175223 《Java程序设计》第9周学习总结
目录 教材学习内容总结 教材学习中的问题和解决过程 1. 输出文件时过多输出. 代码调试中的问题和解决过程 1. 问题:费马素性检验程序. [代码托管] 学习进度条 参考资料 目录 教材学习内容总结 ...
- better-scroll无法滚动的问题。
better-scroll无法滚动的问题.1遇见better-scroll(以下简称:BS)无法滚动,可从两方面去考虑.一是层级关系出错,二是计算高度出错.###1,层级关系BS的基本结构是:一个wr ...
- html 使表格随着内容自动适应宽度
所谓难而不会,会儿不难.这个问题让我纠结了很长时间,一句css解决了,仅仅靠一个属性 td { white-space: nowrap; } from:http://blog.csdn.net/liu ...
- 常见的javascript知识点
1.js获取标签.class.id 获取id: document.getElementById("name") 获取标签:document.getElementsByTagName ...