springmvc之图片上传
1、接收到的是图片的流时
- //上传头像
- @RequestMapping(value = "/uploadHeadSculpture", method = RequestMethod.POST)
- @ResponseBody
- public String uploadHeadSculpture(@RequestParam("photo") String file) {
- User user = (User) SecurityUtils.getSubject().getSession().getAttribute("curr_user");
- //获取文件格式
- String postfix = file.split("/")[1].split(";")[0];
- //获取图片的Base64码
- String str = file.split(",")[1];
- String url = "";
- BASE64Decoder decoder = new BASE64Decoder();
- try {
- // Base64解码
- byte[] bytes = decoder.decodeBuffer(str);
- for (int i = 0; i < bytes.length; ++i) {
- // 调整异常数据
- if (bytes[i] < 0) {
- bytes[i] += 256;
- }
- }
- long title = Calendar.getInstance().getTimeInMillis();
- //获取系统路径并设定文件保存的目录
- String dir = ServiceConfigUtil.getValue("imgpath");//图片的上传路径,我这里是从工程的配置文件获取的
- String fileName = title + "." + postfix;
- // 生成jpeg图片
- FileUtils.writeByteArrayToFile(new File(dir, fileName), bytes);
- String lookUserPhoto = ServiceConfigUtil.getValue("lookUserPhoto");//图片的访问路径,我这里是从工程配置文件获取的,可以自己定义。如果你的图片保存在工程目录下,可以直接用dir+fileName
- url = lookUserPhoto + fileName;//保存到数据库的图片访问路径
- /××
×保存url到数据库
××/- } catch (Exception e) {return "no";
- }return "yes";
- }
注:接收参数file值的一个基本格式
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAdiUlEQVR........."
2、接收到的是file文件直接上传
- @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST)
- public String saveOrUpdate(Person p, @RequestParam("photo") MultipartFile file, HttpServletRequest request) throws IOException{
- if(!file.isEmpty()){
- ServletContext sc = request.getSession().getServletContext();
- String dir = sc.getRealPath(“/upload”); //设定文件保存的目录
- String filename = file.getOriginalFilename(); //得到上传时的文件名
- FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());
- p.setPhotoPath(“/upload/”+filename); //设置图片所在路径
- System.out.println("upload over. "+ filename);
- }
- ps.saveOrUpdate(p);
- return "redirect:/person/list.action"; //重定向
- }
2.1、页面
- <form action="/saveOrUpdate" enctype="multipart/form-data" method="post">
- <input type="file" name="photo">
- <input type="submit" value="commit">
- </form>
2.2、需要在springmvc配置文件中添加
- <!--上传文件-->
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <property name="maxUploadSize" value="10000000000000"/>
- <property name="defaultEncoding" value="UTF-8"/>
- </bean>
3、文件下载
- private void downFile(String filename, String realPath, HttpServletResponse response) throws IOException {
- try {
- filename = new String(filename.getBytes("ISO-8859-1"), "UTF-8");
- } catch (UnsupportedEncodingException e) {
- log.warn("文件转码出现异常异常信息为:" + ExceptionUtil.print(e));
- }
- log.debug("下载的文件名:" + filename);
- log.debug("下载的文件路径:" + realPath);
- OutputStream os = null;
- InputStream inputStream = null;
- try {
- response.setCharacterEncoding("utf-8");
- response.setContentType("multipart/form-data");
- response.setContentType("application/x-download");
- response.setHeader("Content-Disposition", "attachment;fileName="
- + filename);
- inputStream = new FileInputStream(realPath);
- os = response.getOutputStream();
- byte[] b = new byte[1024];
- int length;
- while ((length = inputStream.read(b)) != -1) {
- os.write(b, 0, length);
- }
- os.flush();
- } catch (IOException e) {
- log.warn("下载文件出现异常,异常信息为:" + ExceptionUtil.print(e));
- } finally {
- inputStream.close();
- os.close();
- }
- }
数据导出:java 导出excel到客户端(本地)例子 用poi和servlet实现的
springmvc之图片上传的更多相关文章
- SSM(Spring+springMVC+MyBatis)框架-springMVC实现图片上传
关于springMVC来实现图片上传的功能 话不多说,直接上码 1.applicationContext.xml <!-- 配置文件上传 --> <!--200*1024*1024即 ...
- springmvc的图片上传与导出显示
1.前端文件上传需要在form表单内添加enctype="multipart/form-data" ,以二进制传递: 2.web.xml文件内配置 <servlet-mapp ...
- springmvc图片上传、json
springmvc的图片上传 1.导入相应的pom依赖 <dependency> <groupId>commons-fileupload</groupId> < ...
- springmvc上传图片并显示图片--支持多图片上传
实现上传图片功能在Springmvc中很好实现.现在我将会展现完整例子. 开始需要在pom.xml加入几个jar,分别是: <dependency> <groupId>comm ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
日常啰嗦 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合>讲了富文本编辑器UEditor的整合与使用 ...
- SpringMVC框架五:图片上传与JSON交互
在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失 为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录. 上传图片: & ...
- SpringMVC 图片上传,检查图片大小
使用SpringMVC+Spring 前端提交图片文件到Controller,检查上传图片大小是否符合要求 直接上代码了 1.校验图片大小 这里提供出验证的方法,用于在需要校验的地方调用 /** * ...
- SpringMVC+Spring+MyBatis 整合与图片上传简单示例
一.思路: (一) Dao层: 1. SqlMapConfig.xml,空文件即可.需要文件头.2. applicationContext_dao.xml. a) 数据库连接池b) SqlSessio ...
- jsp+springmvc实现文件上传、图片上传和及时预览图片
1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...
随机推荐
- VRRP协议详解
今天做了lvs的负载均衡的实验,竟然成功了,出乎我意料......哈哈哈哈 http://blog.csdn.net/fanlu319/article/details/7013258
- 初识PHP
初识PHP 虽然是做前端的,可是平时看书.做项目都会与后端PHP相关,但却不是很了解,并经常听PHP大神说:PHP是世界上最好的语言!因此,通过这篇博文学习.总结PHP,来认识认识这个“世界上最好的语 ...
- BZOJ1004: [HNOI2008]Cards
三维01背包算出在每一个置换下不变的染色方案数,Burnside引理计算答案. PS:数据太水所以只算恒等置换也是可以过的. #include<bits/stdc++.h> using n ...
- eclipse的一些常见操作
调整字体大小:Window-Preferences-General-Appearance-Colors and Fonts-Basic-Text Font
- 如何排查APP服务端和客户端是否支持ATS
服务端排查 取得客户端直接连接的服务端域名及端口,例如mob.com.cn,端口443,即HTTPS默认端口.针对公网可访问的生产环境地址,建议使用的在线监测工具.https://wosign.ssl ...
- asp.net js 倒计时总秒数量 和 排序
Edit in JSFiddle JavaScript HTML CSS Result h1 { font-family: "微软雅黑"; font-size: 40px; mar ...
- 比较oracle数据的表结构
对比不同用户对象的异同,同时生成sql语句或直接提交到数据库,powerdesinger的比较实在是麻烦. pl/sql为我们提供了很好的工具 在pl/sql中的工具下“比较用户对象”,下即可实现:
- JavaWeb学习笔记——开发动态WEB资源(四)打印当前使用的是get方法
该工程的名称是testhttp,功能是在页面中表格打印浏览过程中的相关头信息. 新建一个工程,然后在这个工程里面新建一个servlet,这样便可以省去编写web.xml的过程 以下是TestHttpS ...
- 《深入理解bootstrap》读书笔记:第一章 入门准备
一.bootstrap框架简介 Bootstrap是最流行的前端开发框架. 什么是框架:开发过程的半成品. bootstrap具有以下重要特性: (1)完整的CSS样式插件 (2)丰富的预定义样式表 ...
- $().index() 两种用法
第一种:获得第一个 p 元素的名称和值: $(this).index() <script type="text/javascript"> $(document).rea ...