0. 基本步骤框架搭建

实现带图片上传的注册功能

实现下载功能

1. 框架搭建

Step1 创建开发项目

创建基础MVC包结构:controller、service、mapper、pojo

Step2 导入jar包

导入SpringMVC的jar、Spring的jar、MyBatis的jar、上传文件的jar

Step3 配置文件配置applicationcontext.xml文件

开启service包注解扫描

配置数据库信息properties文件

配置数据源bean

配置SqlSession工厂bean

配置mapper扫描bean,记得把工厂依赖设置为属性注入

配置事务管理

配置springmvc.xml文件

配置controller包注解扫描

配置springmvc 注解驱动

配置静态资源放行

配置文件上传资源解析bean

配置web.xml文件

配置spring配置文件加载路径

配置spring容器资源加载监听器

配置SpringMVC的DispatcherServlet

配置编码过滤器

2. 实现带图片上传的注册功能

基本思路:

Step1 先实现图片的异步上传,反显图片,获取图片上传后的存储路径,

Step2 将注册的数据、头像图片的存储路径一并提交至后台完成注册。

2.1 JS实现图片异步上传

实现思路:

Step1 首先引入jQuery文件

Step2 添加注册按钮单击事件

Step3 获取上传文件数据、利用FormData对象封装数据

Step4 ajax方式提交后台,注意processData设置为false、contentType设置为false

Step5 上传成功后回显图片,将图片路径填至隐藏域

具体JS实现图片上传方法:$(function(

$("#uploadBtn").click(function(){

// 获取上传文件

var uploadPhoto = $("#upload")[0].files[0];

// 利用FormDate对象封装文件数据

var formdata = new FormData();

formdata.append("uploadPhoto",uploadPhoto);

$.ajax({

url:'regUpload',

type:'post',

processData:false,

contentType:false,//设置false,将请求数据类型设置为multipart/form-data

data:formdata,

success:function(data){

if(data.result){

alert("上传成功!");

$("#imageSpan").html("");

$("#imgPath").val(data.msg);

}else{

alert("上传失败!原因:"+data.msg);

}

}

});

});

));

2.2 后台处理上传的图片

实现思路:

1、获取文件在服务器存储中的实际路径

2、获取文件原始文件名,随机生成文件名

3、实际路径拼接随机文件名,将文件存储至目标路径

4、存储文件的原始名、随机名、文件类型至数据库

5、返回上传结果、存储路径+文件名

具体代码如下:@RequestMapping("regUpload")

@ResponseBody

public Result regUpload(MultipartFile uploadPhoto, HttpServletRequest request) throws IOException {

// 业务处理

// 1、获取文件在服务器存储中的实际路径

String realPath = request.getServletContext().getRealPath("/uploadImage/");

File pathFile = new File(realPath);

if(!pathFile.exists()){

pathFile.mkdirs();

}

// 2、获取文件原始文件名,随机生成文件名

String originalFilename = uploadPhoto.getOriginalFilename();

String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));

String fileName = UUID.randomUUID()+suffix;

// 3、实际路径拼接随机文件名,将文件存储至目标路径

uploadPhoto.transferTo(new File(realPath+fileName));

// 4、存储文件的原始名、随机名、文件类型至数据库

String contentType = uploadPhoto.getContentType();

PhotoImage photoImage = new PhotoImage("/uploadImage/"+fileName, originalFilename, fileName, contentType );

System.out.println("============================");

int flag = 0 ;

try{

flag =photoImageService.insertImage(photoImage);

}catch (Exception e){

e.printStackTrace();

}

if(flag==1){

// 5、返回上传结果、存储路径+文件名

Result result = new Result(true,"uploadImage/"+fileName);

return result;

}else{

return new Result(false,"图片存储失败!");

}

}

2.3 html页面实现

用户名:
密码:
上传文件:

2.4 实现用户信息注册功能

实现思路:

Step1 用

标签收集页面所有数据

Step2 submit按钮提交至后台

Step3 通过service、mapper存储

具体实现代码:@RequestMapping("regUser")

public String regUser(User user){

// 业务处理

int flag = userService.insertUser(user);

// 请求转发

//return "forward:register.jsp";

return "register";

}

3. 实现图片下载功能

实现思路:

Step1 前台用超链接触发下载功能,将要下载的文件名作为请求参数带上

Step2 后台接收请求,先设置响应头,表明为下载请求:`response.setHeader("Content-Disposition", "attachment;filename="+filenName);`

Step3 获取文件的在硬盘上的绝对路径

Step4 利用FileUtils将文件转成byte数组

Step5 从相应对象中获取输出流,将byte数组写出

Step6 清除输出流的缓存、关闭输出流

具体代码:@RequestMapping("downloadFile")

public void downloadFile(String filename,HttpServletRequest req, HttpServletResponse resp) throws IOException {

// Step2 后台接收请求,先设置响应头,表明为下载请求

resp.setHeader("Content-Disposition", "attachment;filename="+filename);

// Step3 获取文件的在硬盘上的绝对路径

String realPath = req.getServletContext().getRealPath("/uploadImage/");

// Step4 利用FileUtils将文件转成byte数组

File file = new File(realPath,filename);

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

// Step5 从相应对象中获取输出流,将byte数组写出

ServletOutputStream os = resp.getOutputStream();

os.write(bytes);

// Step6 清除输出流的缓存、关闭输出流

os.flush();

os.close();

}

ssm上传文件获取路径_SSM实现图片上传下载功能相关推荐

  1. ssm上传文件获取路径_ssm框架实现图片上传显示并保存地址到数据库(示例代码)...

    本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...

  2. ssm上传文件获取路径_SSM文件上传

    **自己对于SSM文件上传的一些心得** 刚开始的时候也是在网上寻找一些简单的案例,可能我的这篇文章不是最好的,但是这些都是我自己慢慢的摸索以及自己的尝试的一些心得,希望对各位有所帮助. 其实文件的上 ...

  3. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  4. php上传文件默认路径,PHP文件上传到指定目录的实现过程实例解析

    摘要:文件上传其实很简单,通过form表单就可以实现.但form表单上传文件只是把文件放到服务器的临时目录,它还需要我们把上传到临时目录的文件转放到服务器的指定目录.简单的说:把文件从临时目录移动到指 ...

  5. java多文件上传plupload控件实现多图片上传(二)

    接上篇 java多文件上传plupload控件实现多图片上传(一) 续写PluploadUtil 和 Plupload PO类,以及后台的action. 至此,可实现多文件上传功能. 上传文件Acti ...

  6. 【Fastapi】批量上传文件(文档、图片、视频等)

    [Fastapi]批量上传文件 项目演示 功能说明 编程思路 重要知识点分析 源代码 项目演示 [Fastapi]批量上传文件(文档.图片.视频等) https://www.bilibili.com/ ...

  7. ftp mac上传文件到服务器,mac ftp 如何上传文件到服务器

    mac ftp 如何上传文件到服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器 ...

  8. ios如何上传文件到服务器,ios通过ftp上传文件到服务器

    ios通过ftp上传文件到服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...

  9. c# 用户帐户临时文件夹_注册帐户,上传文件以供批准,以及查看和下载批准的文件

    c# 用户帐户临时文件夹 在你开始前 在本系列的第一部分中,您将学习基本PHP语法,形式和功能,以及如何通过PHP应用程序连接和使用MySQL或任何其他数据库. 关于本教程 本教程将引导您使用PHP构 ...

最新文章

  1. Nature方法 | 三代长读长宏基因组组装软件metaFlye
  2. php mysql study_phpStudy 升级 MySQL5.7
  3. Squid配置二级代理(父代理)
  4. 卷积神经网络算法的一个实现
  5. mysql8.0免安教程图解,mysql 8.0.21免安装版配置方法图文教程
  6. 521忘记送大家礼物了,补上!
  7. 自定义评分器Similarity,提高搜索体验(转)
  8. Bean的自动装配Autowiring
  9. 如何判断视频数据是H264编码
  10. 以风景为主题的html,以风景为主题的英语作文
  11. python爬虫抖音音乐_Python爬虫帮你打包下载所有抖音好听的背景音乐,还不快收藏一起听歌-后台/架构/数据库-敏捷大拇指-一个敢保留真话的IT精英社区...
  12. 神奇的λ-calculus
  13. 迅雷发布共享计算与区块链生态 开放技术红利
  14. XSS绕过,XSS过滤速查,XSS绕过姿势
  15. 十七点学完安全知识超级详细了解进程和病毒知识 转载
  16. HEVC代码学习15:AMVP相关函数
  17. 蚂蚁金服黑科技:SOFA DTX分布式事务,保障亿级资金操作一致性
  18. 01-【浏览器】chrome浏览器收藏夹(书签)的导出与导入
  19. 【NS2】cygwin+NS2.29安装之道 (转载)
  20. python模型训练 warm_start_随机森林入门攻略(内含R、Python代码)

热门文章

  1. jdk 11 模块系统_JDK 9:模块系统状态的重点
  2. swarm:pending_WildFly Swarm:使用Java EE构建微服务
  3. Hibernate锁定模式– OPTIMISTIC_FORCE_INCREMENT锁定模式如何工作
  4. jstack调试_增压的jstack:如何以100mph的速度调试服务器
  5. Stomp-Spring服务器端的Web套接字Java客户端
  6. 使用OpenJDK 11运行JAXB xjc编译器
  7. lambda 序列化_Lambda,会序列化吗?
  8. 使用JDK 8将收藏转换为地图
  9. java堆内存和堆外内存_Java堆空间,本机堆和内存问题
  10. http缓存管理器_小心缓存管理器