一篇关于SpringMVC 传统文件上传的方法
一、界面效果
二、html代码
<legend>上传APK文件</legend>
<form action="<%=basePath%>/apks/commitApk" class="form-horizontal" method="post" enctype="multipart/form-data">
<input name="cityCode" value="${s0.paramValue}" type="hidden"/>
<input name="productCode" value="${s.paramValue}" type="hidden"/>
<div class="form-group">
<label for="ticket-message" class="col-sm-3 control-label col-md-1">版本号</label>
<div class="col-md-4">
<input type="text" class="form-control" name="versionCode" id="versionCode" placeholder="请输入整数">
</div>
</div>
<div class="form-group">
<label for="ticket-message" class="col-sm-3 control-label col-md-1">版本名</label>
<div class="col-md-4">
<input type="text" class="form-control" name="versionName" id="versionName" placeholder="0.0.0.1">
</div>
</div>
<div class="form-group">
<label for="ticket-message" class="col-sm-3 control-label col-md-1">描述</label>
<div class="col-md-4">
<textarea class="form-control" name="versionDesc" id="versionDesc" rows="5" cols="30" placeholder="版本描述"></textarea>
</div>
</div>
<div class="form-group">
<label for="ticket-message" class="col-sm-3 control-label col-md-1">文件</label>
<!-- <label for="ticket-attachment" class="col-sm-3 control-label">请选中apk文件</label> -->
<div class="col-md-4">
<input type="file" name="apkFile" id="apkFile">
<p class="help-block"><em>文件类型: .apk</em></p>
</div>
</div>
<div class="form-group">
<label for="ticket-message" class="col-sm-3 control-label col-md-1"></label>
<div class="col-md-4">
<input id="apkSubmitBtn" type="submit" class="btn btn-danger"></input>
</div>
</div>
</form>
三、后台java代码
@RequestMapping(value = "/commitApk", method = RequestMethod.POST)
public @ResponseBody ModelAndView commitApk(@RequestParam("cityCode") String cityCode,@RequestParam("productCode") String productCode,
@RequestParam("apkFile") CommonsMultipartFile[] apkFile,@RequestParam("versionCode") int versionCode,@RequestParam("versionName") String versionName,
@RequestParam("versionDesc") String versionDesc, HttpSession session) {
FileOutputStream out = null;
FileInputStream in = null;
try {
String appPath = System.getProperty("root");
appPath = appPath.substring(0, appPath.indexOf("ExceptionManageSystem"));
StringBuffer buffer = new StringBuffer(appPath + com.tongyan.ems.common.Constants.APKMANAGER_FILES_PAHT);
buffer.append(productCode).append("\\").append(cityCode).append("\\");
File fileDir = new File(buffer.toString());
if(!fileDir.exists()) {
fileDir.mkdirs();
}
buffer.append(apkFile[0].getFileItem().getName());
File file = new File(buffer.toString());
if(!file.exists()) {
file.createNewFile();
} else {
file.delete();//如果存在就删除重新上传
}
out = new FileOutputStream(file); in = (FileInputStream)apkFile[0].getInputStream();
int read = 0;
byte[] b = new byte[1024];
while((read = in.read(b)) != -1) {
out.write(b, 0, read);
}
//数据入库
ApkManagerPo apkManagerPo = new ApkManagerPo();
apkManagerPo.setApkCode(UUID.randomUUID().toString());
apkManagerPo.setCreateDate(new SimpleDateFormat(Constants.DATE_FORMAT).format(new Date()));
apkManagerPo.setProductCode(productCode);
apkManagerPo.setCustomerCode(cityCode);
apkManagerPo.setVersionCode(versionCode);
apkManagerPo.setVersionName(versionName);
apkManagerPo.setVersionDesc(versionDesc);
if(session.getAttribute("User") != null) {
UserPo user = (UserPo)session.getAttribute("User");
apkManagerPo.setUserId(user.getUserId());
}else {
apkManagerPo.setUserId("");
}
apkManagerPo.setApkRoute(com.tongyan.ems.common.Constants.FEEDBACK_FILES_PAHT + productCode + "\\" + cityCode + "\\" + apkFile[0].getFileItem().getName());//文件夹放在webApp下面
apkManagerPo.setApkPath(com.tongyan.ems.common.Constants.FEEDBACK_FILES_URL + productCode + "/" + cityCode + "/" + apkFile[0].getFileItem().getName());
apkService.addApkVersion(apkManagerPo);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(out != null) {
out.close();
}
if(in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
此代码为form表单提交,现改需要改为js提交,故做记录
一个用于ajax上传的js插件
http://files.cnblogs.com/files/royi123/ajaxfileupload_JS_File.rar
一篇关于SpringMVC 传统文件上传的方法的更多相关文章
- TZ_06_SpringMVC_传统文件上传和SpringMVC文件上传方式
1.传统文件上传方式 <!-- 文件上传需要的jar --> <dependency> <groupId>commons-fileupload</groupI ...
- 关于SpringMVC的文件上传
关于文件的上传,之前写过2篇文章,基于Struts2框架,下面给出文章链接: <关于Struts2的文件上传>:http://www.cnblogs.com/lichenwei/p/392 ...
- 6.学习springmvc的文件上传
一.文件上传前提与原理分析 1.文件上传必要前提: 2.文件上传原理分析: 3.需要引入的jar包: 二.传统方式文件上传程序 1.pom.xml <dependency> <gro ...
- 使用springmvc实现文件上传
该配置在javaweb上传文件篇中的基础上进行配置:https://www.cnblogs.com/flypig666/p/11745182.html 1.配置文件解析器,在springmvc.xml ...
- 【SpringMVC】SpringMVC 实现文件上传
SpringMVC 实现文件上传 文章源码 文件上传回顾 查看 JavaWeb 阶段的文件上传下载 实现步骤: 客户端: 发送 post 请求,告诉服务器要上传什么文件 服务器: 要有一个 form ...
- springmvc图片文件上传接口
springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...
- SpringMVC学习--文件上传
简介 文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发. springmvc中对多部件类型解析 在 页面form中提交enctype="m ...
- Spring +SpringMVC 实现文件上传功能。。。
要实现Spring +SpringMVC 实现文件上传功能. 第一步:下载 第二步: 新建一个web项目导入Spring 和SpringMVC的jar包(在MyEclipse里有自动生成spring ...
- SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...
随机推荐
- iOS开发拓展篇—封装音频文件播放工具类
iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...
- Rhel6-pacemaker+drbd配置文档
系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 192.168.12 ...
- HTTP 304
304 的标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档).服务器告诉客户,原来缓冲的 ...
- 在Eclipse上建立hadoop2.2.0/hadoop2.4.0源代码阅读环境
1.安装依赖的包: yum install gcc-c++ g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev 2 ...
- C#学习笔记----枚举、结构、方法及构造函数的总结
一.枚举 语法: [public] enum 枚举名 { 值1, 值2, 值3, ........ } public:访问修饰符.公开的公共的,哪都可以访问. enum:关键字,声明枚举的关键字 枚举 ...
- 关于MySQL中的left join、on、where的一点深入
原文地址:http://www.oschina.net/question/89964_65912?sort=default&p=3#answers 即使你认为自己已对 MySQL 的 LEFT ...
- Python开发入门与实战4-模板页面
4.Django基于模板页面 在前一章中,HTML是直接被硬编码在 Python views.py代码中,如下: from django.http import HttpResponse import ...
- Objective-C学习笔记-第二天(1)
Objective-C中,调用方法采用的是一种消息传递机制. 参考文章:http://blog.csdn.net/xingyevc/article/details/39397873 如果向某个对象传递 ...
- Windows环境下 PHP+Apache+Mysql配置
网上关于这种搭配的配置有许多许多,但是不知道大家有否碰到这么一个问题,就是做好的PHP程序(内含访问mysql数据库的操作)发布到Apache服务器上之后, 运行程序,提示未找到数据库函数. 仔细检查 ...
- OrCAD搭建Access数据库
刚进入到一个小公司,接到的第一个电路设计的案子是从零开始的,辛苦就不说,关键是这么不严谨,容易出错,于是乎,问题来了,能否从零开始着手建立个类似于以前公司的数据库,管理原理图封装,PCB封装及规格书! ...