(文件)图片上传,Spring或SpringMVC框架
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 ...
随机推荐
- CSS表单属性
一般来说,表单在一个页面中是必不可少的,下面是我对表单的知识总结: 依次要说的是表单元素.表单属性.以及表单提交(js知识) 1,表单元素: <form action="提交的位置 / ...
- python自动化测试应用-第7篇(WEB测试)--Selenium进阶篇
篇7 python自动化测试应用-Selenium进阶篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),本篇文章将是我们介 ...
- linux 基础(1)
第一章 Linux 基础知识(一) 一.硬件介绍: 由一条总线把CPU.内存和I/O设备串联起来并与其他设备进行通信.CPU负责运算,内存用于储存临时变量,硬盘用于储存数据.1.1处理器CPU 从内存 ...
- Logback Pattern
Logback日志配置示例 <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppe ...
- [ext4] 磁盘布局 - extent tree
传统的类Unix文件系统,比如Ext3,都是使用一个间接数据块映射表来记录每一个数据块的分配情况的.但是这种机制对于超大文件的存储是有缺陷的,特别是当对超大文件进行删除和截断操作时.映射表会对每一个数 ...
- 详解Java反射机制
反射是程序在运行状态下,动态的获取某个类的内部信息的一种操作.例如:类名,包名,所有属性的集合,所有方法的集合,构造方法的集合等.该操作发生在程序的运行时状态,所以编译器管不着有关反射的一些代码,通常 ...
- bootstrap的常用组件和栅格式布局
Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 因为Bootstrap需要jquery的支持,所以在使用Bootstrap之前要 ...
- vue的Virtual Dom实现- snabbdom解密
vue在官方文档中提到与react的渲染性能对比中,因为其使用了snabbdom而有更优异的性能. JavaScript 开销直接与求算必要 DOM 操作的机制相关.尽管 Vue 和 React 都使 ...
- ESXi5.0误删除虚拟机还有办法恢复吗?答案是可以!
[数据恢复故障描述]故障的虚拟化系统是 ESXi5.0,连接了多个LUN,其中一个1T的LUN上跑有7 台虚拟机,均为Windows Server 2003,管理员因为其它原因误删除了一台虚拟机,此台 ...
- MongoDB副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...