本方法基于springMvc

1.首先需要在webap下创建images

2.在springmvc.xml上引入

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 最大允许上传大小5MB -->
<property name="maxUploadSize" value="5242880" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>

3.配置web.xml过滤器

4.后台代码

import org.springframework.web.multipart.MultipartFile;

@RequestMapping(value = "/uploadImg", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "图片上传", httpMethod = "POST", notes = "返回图片存放服务器路径")
public ReponseResult<String> uploadImg(@RequestParam(value="file",required=false)MultipartFile uploadFile,HttpServletRequest request) {
String imgurl=null;// 文件路径
String trueFileName=null;// 自定义的文件名称
if (uploadFile!=null) {// 判断上传的文件是否为空
String type=null;// 文件类型
String fileName=uploadFile.getOriginalFilename();// 文件原名称
System.out.println("上传的文件原名称:"+fileName);
// 判断文件类型
type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
if (type!=null) {// 判断文件类型是否为空
if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
// String realPath="E:\\apache-tomcat-8.5.40\\apache-tomcat-8.5.40\\webapps\\imgs\\";

//图片存放的路径,可写在本地硬盘,也可放在服务器上
//----------------------------本实例在服务器镜像映射的地址----------------------------------------------
String realPath="/usr/local/tomcat/webapps/项目名称/images/";

//自定义的文件名称
trueFileName=String.valueOf(System.currentTimeMillis())+fileName;
//设置存放图片文件的路径
imgurl=realPath+/*System.getProperty("file.separator")+*/trueFileName;
System.out.println("存放图片文件的路径:"+imgurl);
// 转存文件到指定的路径
try {
uploadFile.transferTo(new File(imgurl));
} catch (IllegalStateException e) {
logger.error(e.toString());
e.printStackTrace();
} catch (IOException e) {
logger.error(e.toString());
e.printStackTrace();
}
System.out.println("文件成功上传到指定目录下");
}else {
System.out.println("不是我们想要的文件类型,请按要求重新上传");
return ReponseResult.error(new CodeMsg(-1, "文件类型不符"));
}
}else {
System.out.println("文件类型为空");
return ReponseResult.error(new CodeMsg(-1, "文件类型为空"));
}
}else {
System.out.println("没有找到相对应的文件");
return ReponseResult.error(new CodeMsg(-1, "没有找到相对应的文件"));
}
//TODO 线上图片存放路径需要修改
//测试地址--------------------------------------------------------------------------
String returnUrl = "http://服务器地址/项目名称/images/"+trueFileName;
//测试地址--------------------------------------------------------------------------

return ReponseResult.success(returnUrl);
}

java图片上传,通过MultipartFile方式,如果后台获取null检查是否缺少步骤的更多相关文章

  1. java图片上传(mvc)

    最近有开始学起了java,好久没写文章了,好久没来博客园了.最近看了看博客园上次写的图片上传有很多人看,今天在一些篇关于java图片上传的.后台接收用的是mvc.不墨迹了,直接上图. 先看目录结构.i ...

  2. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  3. java 图片上传

    代码是最有力量的,嘎嘎 @CrossOrigin@ApiOperation(value = "上传图片", notes = "上传图片", httpMethod ...

  4. js 利用iframe和location.hash跨域解决的方法,java图片上传回调JS函数跨域

    奶奶的:折腾了我二天,最终攻克了!网上有非常多样例. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 測试通过 js :这个主页面,部分代码, functi ...

  5. html,图片上传预览,input file获取文件等相关操作

    input file常用方法: var obj=document.getElementById("upimage"); var file=obj.files[0];//获取文件数据 ...

  6. java图片上传及图片回显1

    目的:选择图片,进行图片回显之后将图片保存到服务器上(PS:没有使用任何插件,样式很丑) 实现方式: js+servlet+jsp的方式来实现 事先准备: 文件上传处理在浏览器中是以流的形式提交到服务 ...

  7. Java图片上传压缩处理

    所需要的jar包在:\jdk1.7.0_25\jre\lib\rt.jar里面 package util; import java.awt.Image; import java.awt.image.B ...

  8. 多图片上传(base64方式传至后台)

    <!DOCTYPE html><html><head> <meta http-equiv="X-UA-Compatible" conten ...

  9. .Net NPOI 上传excel文件、提交后台获取excel里的数据

    1.导入NPOI.dll 2.添加类NPOIExcel.cs using System; using System.Collections.Generic; using System.Text; us ...

随机推荐

  1. MyBatis从入门到精通(第3章):MyBatis注解方式的基本使用

    MyBatis 注解方式就是将 SQL 语句直接写在DAO层的接口上. 在黑马录制的2018年双元视频课:\08 SSM整合案例[企业权限管理系统]\07.订单操作  有使用MyBatis注解进行多表 ...

  2. C# Stream篇(七) -- NetworkStream

    NetworkStream 目录: NetworkStream的作用 简单介绍下TCP/IP 协议和相关层次 简单说明下 TCP和UDP的区别 简单介绍下套接字(Socket)的概念 简单介绍下Tcp ...

  3. Android 为控件添加点击涟漪效果

    Android在5.0版为Button默认添加了点击时的涟漪效果,而且在其他的控件上也可以轻松的实现这种炫酷的效果.涟漪效果可以分为两种,一种时有边界的涟漪,另一种时无边界的涟漪.所谓的有边界,即涟漪 ...

  4. windows driver 映射大文件

    //如果要做到掉电后仍然可以继续向下操作,可以记录文件的位置重新映射 NTSTATUS status; UNICODE_STRING strFileSrc = RTL_CONSTANT_STRING( ...

  5. HDU_1059 多重背包问题

    F - Dividing Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit ...

  6. LeetCode——39. 组合总和

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...

  7. javascript数组日期

    arr forEach(callback,thisArg) thisArg:指明回调函数的this指向 callback(element,index,arr) element:每次取到的数组元素值 i ...

  8. MongoDB三-高级操作

    复制来自:http://www.cnblogs.com/huangxincheng/archive/2012/02/21/2361205.html 今天跟大家分享一下mongodb中比较好玩的知识,主 ...

  9. HDU 5311:Hidden String

    Hidden String  Accepts: 437  Submissions: 2174  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit ...

  10. Uber推出全新交通估算体系能颠覆传统模式吗?

    当下,大众的交通出行正在被全面颠覆.除了传统的出行方式外,共享打车.共享单车.共享滑板车.分时租赁的共享汽车等,正在形成一个全新交通出行矩阵.鉴于交通出行市场的巨大潜力,众多巨头及独角兽企业在绞尽脑汁 ...