首先需要有以下的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. 10----padding(内边距)

    padding padding:就是内边距的意思,它是边框到内容之间的距离 另外padding的区域是有背景颜色的.并且背景颜色和内容的颜色一样.也就是说background-color这个属性将填充 ...

  2. Hadoop 解除 “Name node is in safe mode”(转)

    运行Hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Na ...

  3. nginx开启HSTS让浏览器强制跳转HTTPS访问

    在上一篇文章中我们已经实现了本地node服务使用https访问了,看上一篇文章 效果可以看如下: 但是如果我们现在使用http来访问的话,访问不了.如下图所示: 因此我现在首先要做的是使用nginx配 ...

  4. centos6安装bochs

    安装包 bochs 2.6.8 平台 centos6 前提依赖 yum groupinstall -y "Server Platform Development" "De ...

  5. 用cookie实现记住密码

    jsp-4 用cookie实现记住密码 这次就有点简单了 基本是jsp-3的代码但是有些修改 public void login(HttpServletRequest req, HttpServlet ...

  6. JVM虚拟机 - 内存

    在JVM虚拟机中,内存部分大致可以分为以下几类: Heap:堆 NonHeap:非堆 CodeCache:缓存编辑后的机器码的内存区域 CompressedClassSpace:类压缩空间 MetaS ...

  7. 用简单的方法学习ES6

    ES6 简要概览 这里是ES6 简要概览.本文大量参考了ES6特性代码仓库,请允许我感谢其作者@Luke Hoban的卓越贡献,也感谢@Axel Rauschmayer所作的[优秀书籍]//explo ...

  8. localstorage本地存储的应用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. #include< >和#include“ ”的区别

    < >引用的是编译器的类库路径里面的头文件 " "引用的是你程序目录的相对路径中的头文件 假如你编译器定义的自带头文件引用在C:\Keil\c51\INC\下面 则#i ...

  10. ArcGIS中经纬度数据转空间数据

    已有这样一批数据,后缀为.txt 或者.csv .现需要将其转化为空间数据. 转换过程: 打开ArcMap选择file——>Add Data——>Add XY Data 设置经纬度对应的字 ...