ssm框架Springmvc文件上传实现代码详解

网友投稿 270 2022-12-02


ssm框架Springmvc文件上传实现代码详解

一、上传:

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

<%--文件上传

1)method必须指定为post

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

--%>

选择头像:

<%-- ${param.属性值}==request.getParameter(属性值)--%>

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">

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}"/>

下载


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot整合Redis正确的实现分布式锁的示例代码
下一篇:基于JWT实现SSO单点登录流程图解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~