首先需要有以下的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. Ubuntu搜狗输入法乱码情况

    cd ~/.config sudo rm -rf SogouPY* sogou*

  2. Windows应用程序未响应

    昨天在安装postgresql的扩展功能postgis的时候,stackbuilder刚打开就死掉,一直未响应,刚开始以为是内存的原因,后来发现并没有占用太多内存,最后打开vpn发现就可以了,原来是网 ...

  3. poj(2406) kmp

    题目链接:https://vjudge.net/problem/POJ-2406 kmp学习:https://blog.csdn.net/starstar1992/article/details/54 ...

  4. IE6/IE7下只设置margin-left,左右都有边距问题

    CSS代码 div { border: 1px solid red; } .inner { width: 80px; height: 80px; float: left; position: rela ...

  5. springboot mybatis 自动生成代码(maven+IntelliJ IDEA)

    1.在pom文件中加入需要的依赖(mybatis-generator-core) 和 插件(mybatis-generator-maven-plugin) <dependency> < ...

  6. 一、 Spring Cloud Eureka ,咱们先跑起来

    一.Spring Cloud 简介 Spring Cloud 是一个基于Spring Boot 实现的微服务架构开发工具.是一个涉及到服务治理.分布式配置管理.负载均衡.服务容错.API网关.消息总线 ...

  7. RabbitMQ:消息发送确认 与 消息接收确认(ACK)

    默认情况下如果一个 Message 被消费者所正确接收则会被从 Queue 中移除 如果一个 Queue 没被任何消费者订阅,那么这个 Queue 中的消息会被 Cache(缓存),当有消费者订阅时则 ...

  8. textArea 默认添加的空格

    1.会莫名多出一些空格(标签闭合换行了) <textarea class="borderstyle width97b height75" name="SmsTax. ...

  9. 学习笔记:location.hash和history.pushState()

    在浏览器中改变地址栏url,将会触发页面资源的重新加载,这使得我们可以在不同的页面间进行跳转,得以浏览不同的内容.但随着单页应用的增多,越来越多的网站采用ajax来加载资源.因为异步加载的特性,地址栏 ...

  10. MySQL-5.6.30 (OpenLogic CentOS7.2)

    平台: CentOS 类型: 虚拟机镜像 软件包: centos7.2 mysql5.6.30 basic software database linux open source 服务优惠价: 按服务 ...