jsp中的文件上传
首先需要有以下的jar包

jsp代码如下:
<!-- ${pageContext.request.contextPath}为: "/" + 当前项目名 -->
<form action="${pageContext.request.contextPath}/upLoad" method="post" enctype="multipart/form-data">
<p><label for="picture">图片:</label><input type="file" name="picture"/></p>
<p><label for="picture">图片:</label><input type="file" name="picture"/></p>
<p><input type="submit" value="上传"/></p>
</form>
使用文件上传必须使用POST方式进行上传,以及添加enctype属性
控制器代码如下
@RequestMapping(value= {"upLoad"})
public String upLoad(@RequestParam(value="picture",required=false) MultipartFile[] picture,
HttpServletRequest request) {
//获取服务器上传地址
String path = request.getRealPath(File.separator)+"myupload";
if(picture.length>0&&picture!=null) {
for (MultipartFile p : picture) {
if (p.isEmpty()) {
break;
}
//获取文件名
String oldFileName =p.getOriginalFilename();
//获取后缀
String suffix = oldFileName.substring(oldFileName.lastIndexOf(".")+1, oldFileName.length());
//设置随机名称 防止覆盖同名文件
String fileName = UUID.randomUUID().toString().replaceAll("-", "")+"."+suffix;
System.err.println(fileName);
//根据 路径符串,名字符串创建一个新 File实例。
File targetFile = new File(path,fileName);
try {
//transferto()方法,是springmvc封装的方法,用于图片上传时,把内存中图片写入磁盘
p.transferTo(targetFile);
System.err.println("成功!");
log.debug("文件上传成功");
}catch (Exception e) {
e.printStackTrace();
log.error("文件上传失败: "+e.getMessage());
}
}
}else {
System.err.println("失败!");
}
return "success";
}
此时可以上传之后可以再增加一些条件,如判断文件的类型,文件夹是否存在等,如下
if(!Arrays.asList("jpg","png","jpeg","pneg").contains(suffix)) {
System.out.println("图片格式错误必须是jpg,PNG,JPEG,pneg其中一种");
return "error";
}
if(!targetFile.exists()) {
targetFile.mkdirs();//如果路径不存在,就创建该目录
}
jsp中的文件上传的更多相关文章
- Java中的文件上传和下载
文件上传原理: 早期的文件上传机制: 在TCP/IP中.最早出现的文件上传机制是FTP.他是将文件由客户端发送到服务器的标准机制. jsp中的文件上传机制: 在jsp编程中不能使用FTP的方法来上传文 ...
- struts2中的文件上传,文件下载
文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...
- javaweb中的文件上传的一般写法(初次接触时写)
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1. 通过form表单向后端发送请求 <form id=&quo ...
- 转:在Struts 2中实现文件上传
(本文转自:http://www.blogjava.net/max/archive/2007/03/21/105124.html) 前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题 ...
- javaWeb中的文件上传下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- javaWeb中,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- (转)SpringMVC学习(九)——SpringMVC中实现文件上传
http://blog.csdn.net/yerenyuan_pku/article/details/72511975 这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文 ...
- JavaWeb中的文件上传和下载功能的实现
导入相关支持jar包:commons-fileupload.jar,commons-io.jar 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上 ...
- JSP实现大文件上传和下载
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...
随机推荐
- E - Palindrome Numbers
题目链接:https://vjudge.net/contest/237394#problem/E A palindrome is a word, number, or phrase that read ...
- Have启动报错:java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
错误日志如下: [hadoop@master hive1.0.0]$ bin/hive Logging initialized using configuration in file:/opt/mod ...
- Python3基础(1)Python介绍、Python2 与Python3、变量、用户输入、if...else和for循环、while循环、break与continue
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ P ...
- quartz任务调度初次使用记录
近期公司开发的数据交换系统嵌入了quartz任务调度功能,大概了解了任务调度的整个流程,项目中需要用到它来进行定时任务操作,对数据定时检查以及及时交换. Quartz是OpenSymphony开源组织 ...
- 最简实例演示asp.net5中用户认证和授权(2)
上接最简实例演示asp.net5中用户认证和授权(1) 基础类建立好后,下一步就要创建对基础类进行操作的类了,也就是实现基础类的增删改查(听起来不太高大上),当然,为了使用asp.net5的认证机制, ...
- 服务器端控件的"客户端"
控件的服务端ID和客户端ID 比如一个ID为TextBox1的服务器端控件,在客户端访问该控件的DOM元素时 错误: var txtbox=document.getElementByID(" ...
- java中过滤器、监听器、拦截器的区别
1.过滤器:所谓过滤器顾名思义是用来过滤的,在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的actio ...
- python类型之间的转换
*int(x,base=10)x字符串或数字,base进制数,默认十进制 浮点转为整数 *float 整数转换为浮点型 *complex(1,2) 转换为复数 *str(10)将对象转换为字符串 *r ...
- [翻译] Facebook HHVM 团队封闭开发三周成果展
本人翻译的一篇文章,首发于伯乐在线. [补充信息]HipHop for PHP是一系列PHP脚本语言的程式码转换器的集合,它包含HPHPc.HPHPi.HPHPd以及HHVM,这四个脚本引擎各有所不同 ...
- cf1040E. Network Safety(并查集)
题意 题目链接 一张图,n个点,m条边,每个点有个权值x,x<=1e18.如果一条边的两个端点不一样,那么这条边是安全的,开始时所有边都是安全的. 现在有一个病毒y,病毒可以入侵任意的点,入侵一 ...