ssm文件上传到服务器,如何用ssm框架实现Springmvc文件上传

如何用ssm框架实现Springmvc文件上传

发布时间:2020-07-01 16:12:35

来源:亿速云

阅读:80

作者:清晨

这篇文章将为大家详细讲解有关如何用ssm框架实现Springmvc文件上传,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、上传:

1)编写前台文件上传表单。Method必须为post,enctype为mutipart/form-data

1)method必须指定为post

2)enctype必须指定为multipart/form-data

--%>

头像上传

选择头像:

2)编写控制层代码,获取上传的文件数据,并保存MultipartFile;

//MultipartFile:用来接收上传的文件,参数名与input的name一直

//@SessionAttribute("admin"):获取session域中的值

//@RequestParam(required = false):指定对应的参数可以为空,不是必须有值

@RequestMapping("/headpic")

public String headPic(MultipartFile headpic,@RequestParam(required = false) Admin admin,Integer id) throws IOException {

String filename = headpic.getOriginalFilename();

System.out.println("上传的文件名:"+filename);

File file=new File("E:/headpic/"+filename);

if (!file.getParentFile().exists()){

file.getParentFile().mkdirs();//如果父目录不存在,创建该目录

}

//保存文件,将上传的文件内容写入file

headpic.transferTo(file);

admin=new Admin(id);

//将头像访问路径保存到对象中

admin.setHeadpic("/head/"+filename);

//更新用户头像信息

adminService.updateHeadPic(admin);

return "redirect:list";

}

3)在springmvc配置文件中配置文件上传配置项。配置multipartResolver;

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

二、下载:

1) 获取到下载文件的路径;

2) 读取文件内容到字节数组;

3) 返回字节数组,并声明返回类型为stream,设置附件名称;

@GetMapping("/headPicDownload")

public ResponseEntity headPicDownload(String filename) throws IOException {

//1、定位到文件地址

File file=new File("E:/headpic/"+filename);

//2、读取文件内容

byte[] bytes= FileUtils.readFileToByteArray(file);

//3、设置http响应头

HttpHeaders headers = new HttpHeaders();

//设置ContentType为stream

headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);

//4、设置以附件形式打开

headers.setContentDispositionFormData("attachment",filename);

// 内容 头部信息 http状态码

return new ResponseEntity(bytes,headers, HttpStatus.CREATED);

}

src="${pageContext.request.contextPath}${admin.headpic}"/>

下载

关于如何用ssm框架实现Springmvc文件上传就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值