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之文件上传、下载的更多相关文章
- springMVC实现文件上传下载
上传文件和下载文件是个常用的技能,在哪里开发几乎都能遇见,而所有的上传控件各不相同,插件很多,后台也有很多,这里我只尝试过这个方法觉的还够简洁.具体如下实现: 1.spring-mvc.xml配置 ...
- SSM框架-SpringMVC 实例文件上传下载
一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+sta ...
- 14.SpringMVC之文件上传下载
SpringMVC通过MultipartResolver(多部件解析器)对象实现对文件上传的支持. MultipartResolver是一个接口对象,需要通过它的实现类CommonsMultipart ...
- SpringMVC的文件上传下载,异常处理,拦截器的小总结
文件的上传和下载 我们通常在访问网页时会使用到文件的上传与下载的功能,那么他是如何实现的呢? 1 下载: ResponseEntity :用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览 ...
- SpringMVC异步文件上传下载
首先了解一下File的构造方法: File(String pathname):根据一个路径得到File对象 File(String parent,String child):根据一个目录和一个子文件/ ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- SpringMVC文件上传下载
在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...
- 使用springMVC实现文件上传和下载之环境配置与上传
最近的项目中用到了文件的上传和下载功能,任务分配给了其他的同时完成.如今项目结束告一段落,我觉着这个功能比较重要,因此特意把它提取出来自己进行了尝试. 一. 基础配置: maven导包及配置pom.x ...
- SpringMVC 文件上传下载
目录 文件上传 MultipartFile对象 文件下载 上传下载示例 pom.xml增加 创建uploadForm.jsp 创建uploadForm2.jsp 创建userInfo.jsp spri ...
- springmvc文件上传下载简单实现案例(ssm框架使用)
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...
随机推荐
- 一个简单插件this传值的跟踪
<!DOCUTYPE html> <html> <head> <meta charset="UTF-8"> <script s ...
- 【Python项目】使用Face++的人脸识别detect API进行本地图片情绪识别并存入excel
准备工作 首先,需要在Face++的主页注册一个账号,在控制台去获取API Key和API Secret. 然后在本地文件夹准备好要进行情绪识别的图片/相片. 代码 介绍下所使用的第三方库 ——url ...
- Laravel 项目上线的一些注意事项
1.应用生产环境 在 .env 文件里设置 APP_ENV=production 2.关闭调试模式 在 .env 文件中设置 APP_DEBUG = false 3.生成 APP_KEY 使用 Art ...
- 访问WEB-INF目录中的文件
WEB-INF下面的文件具有安全性,直接在浏览器中输入地址是访问不到的,可以通过servlet来访问. 方法1: 利用<jsp-file>/WEB-INF/a.jsp</jsp-fi ...
- SVN--版本控制系统
引言 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subvers ...
- UCenter创始人、Discuz!创始人、管理员账号的认知(转)
UCenter创始人.Discuz!创始人.管理员账号的认知 什么是创始人?现在可能还有好多的站长对这个概念有点模糊,今天我给大家屡屡思路,讲讲这个概念性问题,没啥技术含量.已经明白这个概 ...
- SQL语句获取时间的方法
1. 当前系统日期.时间select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day ...
- cf786a
title: CodeForces 786A Berzerk data: 2018-3-3 10:29:40 tags: 博弈论 bfs 无限 with draw copyright: true ca ...
- php写入和读取文件内容
function read_file($filename){ // $filename = "/usr/local/something.txt"; $handle = @fopen ...
- AC日记——方差 洛谷 P1471
方差 思路: 线段树: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct TreeN ...