首先需要有以下的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中的文件上传的更多相关文章

  1. Java中的文件上传和下载

    文件上传原理: 早期的文件上传机制: 在TCP/IP中.最早出现的文件上传机制是FTP.他是将文件由客户端发送到服务器的标准机制. jsp中的文件上传机制: 在jsp编程中不能使用FTP的方法来上传文 ...

  2. struts2中的文件上传,文件下载

    文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...

  3. javaweb中的文件上传的一般写法(初次接触时写)

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1. 通过form表单向后端发送请求 <form id=&quo ...

  4. 转:在Struts 2中实现文件上传

    (本文转自:http://www.blogjava.net/max/archive/2007/03/21/105124.html) 前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题 ...

  5. javaWeb中的文件上传下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  6. javaWeb中,文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  7. (转)SpringMVC学习(九)——SpringMVC中实现文件上传

    http://blog.csdn.net/yerenyuan_pku/article/details/72511975 这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文 ...

  8. JavaWeb中的文件上传和下载功能的实现

    导入相关支持jar包:commons-fileupload.jar,commons-io.jar 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上 ...

  9. JSP实现大文件上传和下载

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

随机推荐

  1. 02------css选择器

    css的选择器:1.基本选择器 2.高级选择器 基本选择器包含: 1.标签选择器标签选择器可以选中所有的标签元素,比如div,ul,li ,p等等,不管标签藏的多深,都能选中,选中的是所有的,而不是某 ...

  2. 032 Longest Valid Parentheses 最长有效括号

    给一个只包含 '(' 和 ')' 的字符串,找出最长的有效(正确关闭)括号子串的长度.对于 "(()",最长有效括号子串为 "()" ,它的长度是 2.另一个例 ...

  3.  $(document).ready(function() { });

    l  $(document).ready(function() {   }); 初始化jsp

  4. ZK配置文件

    The number of milliseconds of each tick, 最小时间单位,很多运行时的时间 #间隔都是使用tickTime的倍数来表示的,例如initLimit=10就是tick ...

  5. Hibernate的事务管理

    Hibernate的事务管理 事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰.作为一名软件设计 ...

  6. MySQL三种存储引擎总结

    MySQL三种存储引擎 MyISAM.InnoDB.MEMORY 1.MyISAM MyISAM,3.23.34a前的默认存储引擎. 优缺点 优点 在于占用空间小,处理速度快. 缺点 不支持事务的完整 ...

  7. POI 博客总结.....

    主键类: HSSFRow row1= sheet.createRow(1); row.createCell(0).setCellValue("学生编号"); row.createC ...

  8. blueterm蓝牙超级终端(源码)

    今天FQ访问外文网站砍看见的终端程序,貌似现在已经开源了,这个软件源码方便开发者开发开发蓝牙与相关的设备的通信,所以在此分享下,给需要的人 项目地址:点击打开,感谢作者,我已经实验过了,导入到ecli ...

  9. Spring Boot 的配置文件application.properties

    Spring Boot 中的application.properties 是一个全局的配置文件,放在src/main/resources 目录下或者类路径的/config下. 作为全局配置文件的app ...

  10. 【转】【C++】【MFC】关于RADIO BUTTON的使用方法

    *原文地址:http://blog.csdn.net/c_cyoxi/article/details/23868979 1. 环境:VS2010 2. 分组 将radio1.radio2.radio3 ...