java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载
单文件上传:
pom.xml:
commons-io
commons-io
1.3.2
commons-fileupload
commons-fileupload
1.2.1
jstl
jstl
1.2
taglibs
standard
1.1.2
upload.jsp:
1.input的type设置为file。
2.form表单的method设置为post。(get请求只会将文件名传给后台)
3.form表单的enctype设置为multipart/form-data,以二进制的形式传输数据。
" method="post" enctype="multipart/form-data">
上传的图片
FileController.java:
@RequestMapping(value="upload", method = RequestMethod.POST)
public String upload(@RequestParam(value="img")MultipartFile img, HttpServletRequest request)
throws Exception {
//getSize()方法获取文件的大小来判断是否有上传文件
if (img.getSize() > 0) {
//获取保存上传文件的file文件夹绝对路径
String path = request.getSession().getServletContext().getRealPath("file");
//获取上传文件名
String fileName = img.getOriginalFilename();
File file = new File(path, fileName);
img.transferTo(file);
//保存上传之后的文件路径
request.setAttribute("filePath", "file/"+fileName);
System.out.println("file/"+fileName);
return "upload";
}
return "error";
}
springMVC.xml:
注意:这里需要在webapp文件下手动创建一个file文件夹。
多文件上传:
uploads.jsp:
file1:
file2:
file3:
上传的图片
FileController.java:
@RequestMapping(value="/uploads", method = RequestMethod.POST)
public String uploads(@RequestParam MultipartFile[] imgs, HttpServletRequest request)throws Exception {
//创建集合,保存上传后的文件路径
ListfilePaths = new ArrayList();
for (MultipartFile img : imgs) {
if (img.getSize() > 0) {
String path = request.getSession().getServletContext().getRealPath("file");
String fileName = img.getOriginalFilename();
File file = new File(path, fileName);
filePaths.add("file/"+fileName);
img.transferTo(file);
}
}
request.setAttribute("filePaths", filePaths);
return "uploads";
}
文件下载:
download.jsp:
Insert title here
下载图片
FileController.java:
@RequestMapping("/download")
public void downloadFile(String fileName,HttpServletRequest request,
HttpServletResponse response){
if(fileName!=null){
//获取file绝对路径
String realPath = request.getServletContext().getRealPath("file/");
File file = new File(realPath,fileName);
OutputStream out = null;
if(file.exists()){
//设置下载完毕不打开文件
response.setContentType("application/force-download");
//设置文件名
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
try {
out = response.getOutputStream();
out.write(FileUtils.readFileToByteArray(file));
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(out != null){
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载相关推荐
- 【转】jsp+servlet和SSM分别是如何实现文件上传(示例)
原文地址:https://blog.csdn.net/niceliusir/article/details/78453560 以下是jsp+servlet和SSM分别是如何实现文件上传的方法示例 两种 ...
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...
1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...
- SpringMVC 单文件上传与多文件上传
一.简述 一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件 ...
- springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
springboot文件上传,单文件上传和多文件上传 项目结构及pom.xml 创建文件表单页面 编写javabean 编写controller映射 MultipartFile类 @RequestPa ...
- 原生input标签实现ajax单文件上传和多文件上传
自己还是一个菜鸟的时候,有次项目经理让我用Java做一个多文件上传的功能.那时候技术学得很渣,最多只能够实现单文件上传.做了一个星期都没有做出来,于是项目经理不留半点情面,当着办公室所有人的面痛批我一 ...
- php 上传文件漏洞,【文件上传】PHP文件上传漏洞
0x01 文件上传漏洞 文件上传漏洞顾名思义就是用户上传一个可执行的脚本文件,获得了执行服务器端命令的能力.通常,文件上传是getshell最常用.最直接的方式了.但是,文件上传本身是一个正常的业务需 ...
- ***使用PHP实现文件上传和多文件上传
http://www.365mini.com/page/php-upload-file.htm 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在P ...
- 前后端分离 -- 深入浅出 Spring Boot + Vue + ElementUI 实现相册管理系统【文件上传 分页 】 文件上传也不过如此~
前后端分离 – 深入浅出系列 Spring Boot + Vue + ElementUI 实现相册管理系统[文件上传 分页 ] 文件上传也不过如此~ 引言 Hello,我是Bug终结者,一名热爱后端J ...
- vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url
vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url vue中使用 <vue-tinymcev-model="itemForm.con ...
最新文章
- ACM第一名:基于轨迹感知多模态特征的视频关系检测
- Linux之sed:修改器按照字符和行数进行筛选和替换行值 选项[动作
- 【数据结构总结】第八章 排序
- JQuery属性、事件相关操作
- GXU - 7D - 区间求和 - 前缀和
- .NET 云原生架构师训练营(设计原则设计模式)--学习笔记
- 一种QC-LDPC码对突发噪声抑制的MATLAB仿真
- Oracle学习笔记--导航
- sqlserver 递归查询
- 如何使用.NET Core,SQL和HTML和JavaScript构建CRUD应用程序
- java 路径通配符_java实现路径通配符*,**,?
- Microsoft Office 2008 for Mac Service Pack 1 更新后无法启动程序问题解决方案
- 掘金企服:ICP经营许可证和ICP备案的区别
- XLA编译器用于JIT加速
- 大量discuz电脑模板企业模板手机模板免费下载,百度云下载地址
- cocos2d-x 添加自定义字体---中文,英文
- 使用css画太极,CSS画太极阴阳图
- 8*8LED点阵图原理(74HC595芯片使用方法)
- nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 在express中建立路由
- 信号时频域分析 ——EMD/BEMD/LMD 算法原理
热门文章
- access超过255列数据_Access的数据类型,与Excel虽类似,数据库+sql更适合大量数据管理...
- oracle虚拟机 centos6.5,虚拟机oracle virtualbox 上安装centos6.5 网络设置
- lua如何判断是否支持cookie_我们应该如何判断机油是否变质?
- Linux内存中加载二进制,linux – 程序退出后二进制文件会留在内存中吗?
- python nonetype转换float_如何在Python中将NoneType值从聚合转换为float?
- 获取顶级域名与一级域名的python库-tld
- android的三个基础控件,Android基础控件——ProgressBar自定义的介绍、动画效果实现、附加三个漂亮的进度条...
- mysql日志恢复数据_Mysql 通过binlog日志恢复数据
- 中国移动系统集成公司2020春招技术综合在线编程题第二题
- 【科普】一图区分 IAAS + PAAS + SAAS