spring或springMVC框架图片(文件)上传
页面部分,用一个简单的form表单提交文件,将图片或文件提交到服务端。一个输入框,用于输入图片的最终名称,一个file文件选择,用于选择图片。
页面代码如下:
<form id="form1" > <table style="width:100%;border:0;">
<tr>
<th style="width:35;text-align: center;" class="must">图片名称:</th>
<td><input id="imgName" style="width:150px;" name="imagePath" verify="true" mustFill="true" maxlength="100" /></td>
</tr> <tr id="fileSelect">
<th></th>
<td>
<input type="file" name="file" id="doc" style="width:150px;" onchange="javascript:setImagePreview(this);">
</td> </table>
</form>
js部分,发送一个ajax请求,先检查名称是否重复。没有重复才设置form的action,然后提交表单。代码如下:
//发送检查名称是否重复的后台函数的请求,可以忽略 $.ajax({url:"<%=contextPath%>/imageUploadController/imageExistCheck",type:'POST',dataType:'json',data:data
,success:function(msg){
if(msg.result==false&&$("#saveOrUpdata").val()!="1"){ alert("名称重复,请修改名称");
return 0;
}else{//没重复或者要修改 //下面这个if用于验证表单必填项是否都填了,忽略。
if(Common.verify($("#createForm"))){
//设置form的action $('#form1').attr('action', '<%=contextPath%>/imageUploadController/imageUpload');
$("#form1").submit();
} } },error:function(xhr){alert('错误\n'+xhr.result);}});
return false;
});
最后是后台代码,解释都放在注释里,更便于观看。
@RequestMapping(value="/imageUpload",method=RequestMethod.POST)
public String upLoadImage(FireEquipmentInfo fireEquipmentInfo,HttpServletRequest req){
//转化request
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req;
MultipartFile multipartFile = multipartRequest.getFile("file"); //获取原文件名
String fileName = multipartFile.getOriginalFilename();
//获取原名后缀
String fileEnd = fileName.substring(fileName.lastIndexOf(".")+1).toLowerCase();
String realName =null;
//获取项目根目录
String imagePath=req.getSession().getServletContext().getRealPath("/"); String imageName=null;
imageName=RequestUtil.getStringParameter(req, "imagePath");
//拼接路径和最终名
imagePath+="img/login/";
realName=imageName+ "." + fileEnd;
try {
//实例化一个file
File file = new File(imagePath);
//创建路径
if(!file.exists())
file.mkdirs();
//创建文件
file=new File(imagePath+"/"+realName);
file = new File(imagePath,realName);
//文件存储
multipartFile.transferTo(file);
} catch (Exception e) {
req.setAttribute("msg", e.getMessage());
}
(文件)图片上传,Spring或SpringMVC框架的更多相关文章
-
Retrofit 2.0 轻松实现多文件/图片上传/Json字符串/表单
如果嫌麻烦直接可以用我封装好的库:Novate: https://github.com/Tamicer/Novate 通过对Retrofit2.0的前两篇的基础入门和案例实践,掌握了怎么样使用Retr ...
-
WebUploader文件图片上传插件的使用
最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUp ...
-
[iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]
简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma m ...
-
文件的上传和下载--SpringMVC
文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载.邮件附件的上传和下载等. 接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解. 一.文件上传 多数文件上传都是通过表单 ...
-
spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)
一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...
-
WebApi2 文件图片上传下载
Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一.项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交.具体的跨域配置方 ...
-
关于富文本编辑器—UEditor(java版)的使用,以及如何将UEditor的文件/图片上传路径改成绝对路径
突然发现好久没写博客了,感觉变懒了,是要让自己养成经常写文章的习惯才行.既可以分享自己的所学,和所想,和大家一起讨论,发现自己的不足的问题. 大家可能经常会用到富文本编辑器,今天我要说的是UEdito ...
-
commons-fileload图片文件上传工具 , servlet文件图片上传案列
本案列是java maven工程小项目,提供个大家学习! 1.在pom.xml文件中导入依赖: <!--文件上传依赖--><dependency> <groupId&g ...
-
asp.net 4.Redirect重定向和文件图片上传
1.Response.Redirect 如图所示: 1.用户点击修改按钮, 浏览器向服务器发送一个POST请求 http://localhost:6543/UpdateUser.ashx 2.服务器的 ...
-
使用WebUploader进行文件图片上传
官方文档:http://fex.baidu.com/webuploader/getting-started.html 引入Webuploader的css和js文件,下载地址:http://fex.ba ...
随机推荐
-
对象Clone
//================================================= // File Name : Clone_demo //-------------------- ...
-
0601 Spring2.0 发布会及产品发展方向
ProductBacklog:继续向下细化; 1.界面美化,统一界面风格,以简洁美观为主: 2.丰富版面的内容,吸引用户: 3.尝试增加新的版面: Sprint 计划会议:确定此次冲刺要完成的目标 1 ...
-
HeadFirst 13 (包装器, 过滤器) not Finish
过滤器准许你拦截请求 容器管理过滤器的生命周期 都在DD中声明
-
mvc Action上面加 [HttpPost]
mvc Action上面加 [HttpPost] 意思就是这个action只能响应post请求. 如果发get请求这里是没有响应的
-
[BZOJ]1018 堵塞的交通(SHOI2008)
一道有点神的线段树. Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城 ...
-
Python基础:条件判断与循环的两个要点
一.条件判断: Python中,条件判断用if语句实现,多个条件判断时用if...elif实现:看下面一段程序 #python 3.3.5 #test if...elif age = 20 if ag ...
-
C#如何判断线程池中所有的线程是否已经完成(转)
其 实很简单用ThreadPool.RegisterWaitForSingleObject方法注册一个定时检查线程池的方法,在检查线程的方法内调用 ThreadPool.GetAvailableThr ...
-
kafka 配置文件注释
文章转载自:http://liyonghui160com.iteye.com/blog/2163899 server.properties配置: server.properties中所有配置参数说明( ...
-
[算法]和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...
-
【转】Hudson插件Email-Ext邮件模板时间格式化的解决方法
原文地址:http://www.cnblogs.com/haycco/archive/2012/03/20/3031397.html 最近因对Hudson版本进行了升级为2.2.0,所以各方面都在搞项 ...