文件上传步骤:

* 1.采用文件正确的接收方式(修改3处配置文件/接口类型等)

* 2.判断是否为一个图片,0表示无异常,1代表异常(jpg|gif|png)

* 3.判断是不是一个“正经”的图片,判断是否有宽度和高度

* 4.编辑磁盘目录,D:/jtphoto/images/yyyy/MM/dd/hh/mm

* 5.编辑相对路径,url:image.jt.com/images/yyyy/MM/dd/hh/mm

* 6.保存文件

EasyUI前台请求:

//编辑器参数
kingEditorParams : {
filePostName : "uploadFile",
uploadJson : '/pic/upload',
dir : "image"
},

Controller:  

 package com.jt.manage.controller;

 import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.imageio.ImageIO; import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import com.jt.common.vo.PicUploadResult; @Controller
public class FileUploadController { private static final Logger logger = Logger.getLogger(FileUploadController.class);
/**
* 文件上传步骤
* 1.采用文件正确的接收方式(修改3处配置文件/接口类型等)
* 2.判断是否为一个图片,0表示无异常,1代表异常(jpg|gif|png)
* 3.判断是不是一个“正经”的图片,判断是否有宽度和高度
* 4.编辑磁盘目录,D:/jtphoto/images/yyyy/MM/dd/hh/mm
* 5.编辑相对路径,url:image.jt.com/images/yyyy/MM/dd/hh/mm
* 6.保存文件
* @param uploadFile
* @return
*/ @RequestMapping("/pic/upload")
@ResponseBody
public PicUploadResult fileUpload(MultipartFile uploadFile){ PicUploadResult picload = new PicUploadResult(); //获取图片名
String fileName = uploadFile.getOriginalFilename(); //截取图片后缀
String suff = fileName.substring(fileName.lastIndexOf(".")); //判断是否是图片
if(!(suff.matches(".(jpg||gif||png)"))){ //不是个图片
picload.setError(1);
logger.error("~~~ 您上传的不是个图片");
return picload;
} //判断上传的图片是不是个“正确”的图片
try {
BufferedImage bufferedImage = ImageIO.read(uploadFile.getInputStream()); //获取图片的宽高
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
picload.setWidth(width+"");
picload.setHeight(height+""); //编辑路径
String localPath = "D:/jtphoto/images/";
String urlPath = "http://image.jt.com/images/";
String dataPath = new SimpleDateFormat("yyyy/mm/dd/hh/mm").format(new Date()); //拼接路径
localPath += dataPath+uploadFile.getOriginalFilename();
urlPath += dataPath+uploadFile.getOriginalFilename(); File file = new File(localPath);
if(!file.exists()){
//文件不存在时创建多个文件
file.mkdirs();
} //将图片写入磁盘
uploadFile.transferTo(file);
picload.setUrl(urlPath); return picload; } catch (IOException e) {
e.printStackTrace();
picload.setError(1);
logger.error("~~~ 您上传不是个正规的图片");
return picload;
} } }
PicUploadResult 对象:
 package com.jt.common.vo;

 public class PicUploadResult {
private Integer error=0; //图片上传错误不能抛出,抛出就无法进行jsp页面回调,所以设置这个标识,0表示无异常,1代表异常
private String url; //浏览器能够解析的具体页面路径。相对路径: http//image.jt/img.jpg 本地路径:存放图片路径 D:/jt-image/....
private String width;
private String height; public Integer getError() {
return error;
} public void setError(Integer error) {
this.error = error;
} public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url;
} public String getWidth() {
return width;
} public void setWidth(String width) {
this.width = width;
} public String getHeight() {
return height;
} public void setHeight(String height) {
this.height = height;
} }

实现效果:

注意: 开始上传后开始并没有回显图片,而是通过Nginx反向代理服务器技术来实现转向,由

http://image.jt.com/images/2017/07/25/15/26/57

转向到

D:/jtphoto/images/2017/07/25/15/26/574ed257Nebb74cec.jpg

图片上传功能(EasyUI前台框架+SSM框架)的更多相关文章

  1. megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题

    最近在弄微信端的公众号.订阅号的相关功能,发现原本网页上用的uploadify图片上传功能到手机端有的手机类型上就不能用了,比如iphone,至于为啥我想应该不用多说了吧(uploadify使用fla ...

  2. Ueditor图片上传功能的配置

    之前的项目中碰到过图片上传功能的配置问题,但是没有记录下来,今天有个朋友突然又问到了我这个问题,当时没想起来之前怎么解决的,后来看了Ueditor的官方文档才回想起来. 官网文档巨多,一般大家遇到问题 ...

  3. java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

    java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...

  4. drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法二

    drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法一 中介绍了ckeditor的安装和配置方法,其实还有另一种新方法,不用IMCE模块. 不过需要ckfinder的JS库,可以 ...

  5. ssm整合-图片上传功能(转)

    本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能. 以一个添加用户的案例介绍(主要是将上传文件). 一.需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以 ...

  6. springmvc文件上传下载简单实现案例(ssm框架使用)

    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...

  7. FLASH图片上传功能—从百度编辑器UEditor里面提取出来

    为了记录工作中碰到的各种问题,以及学习资料整理,今天开始,将以往的文章进行了一个整理,以后也开始认真的记录学习过程中的各种问题 在HTML里面的文件上传功能一直是个问题,为了实现上传文件大小限制,怎样 ...

  8. Dede后台广告管理模块增加图片上传功能插件

    用户问题:网站广告后台管理非常方便,但是织梦后台的广告管理模块,发布广告时图片没有上传选项,只能用URL地址,很不方便,那么织梦帮就教大家一个方法实现广告图片后台直接上传,非常方便.先给大家看下修改后 ...

  9. 图片上传功能<转>http://blog.csdn.net/u011159417/article/details/50126023

    以前也实现过上传,只不过每次都是,写完之后没有总结,下次遇到时,还要重新写,重新调式,很是浪费时间,所以,今天实现一个上传图片的功能,包括简单的页面和servlet,下次再要写这个功能时,直接拿过来就 ...

随机推荐

  1. Beautiful Soup的一些中文资料

    如果你着急用的话,可以看下这个简略版的,非常简单: 转自  人世间http://rsj217.diandian.com/post/2012-11-01/40041235132 当然,强烈推荐你看一下的 ...

  2. 「模板」 线段树——区间乘 && 区间加 && 区间求和

    「模板」 线段树--区间乘 && 区间加 && 区间求和 原来的代码太恶心了,重贴一遍. #include <cstdio> int n,m; long l ...

  3. 【BZOJ】1700: [Usaco2007 Jan]Problem Solving 解题

    [题意]给定n道题,每月末发放工资m,要求从1解到n,每道题需要在当月初付费ai,下月初付费bi,多道题可以安排在同月,求最少月数. [算法]DP [题解]参考自:[bzoj1700]Problem ...

  4. 计蒜客 Goldbach Miller_Rabin判别法(大素数判别法)

    题目链接:https://nanti.jisuanke.com/t/25985 题目: Description: Goldbach's conjecture is one of the oldest ...

  5. React组件生命周期小结

    React组件生命周期小结 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函 ...

  6. querySelector()与querySelectorAll()

    1.querySelector() 参数:css选择器 返回匹配指定css选择器元素的第一个子元素 2.querySelectorAll() 参数:css选择器 返回匹配指定css选择器的所有元素

  7. Bitmap算法应用实例(转)

    关于数据库查询工作,例如有如下数据库表 要想统计所有90后的程序员该怎么做呢?用一条求交集的SQL语句即可: Select count(distinct Name) as 用户数 from table ...

  8. Java多线程学习(五)线程间通信知识点补充

    系列文章传送门: Java多线程学习(二)synchronized关键字(1) Java多线程学习(二)synchronized关键字(2) Java多线程学习(三)volatile关键字 Java多 ...

  9. spin lock的理解

    为什么在spin lock保护的代码里面不允许有休眠的操作呢? 因为spin lock不是空实现的前提下(内核没关抢占,或者是SMP打开),spin lock中是关抢占的,如果一个进程A拿到锁,内核抢 ...

  10. U-Boot启动过程完全分析<转>

    转载自:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html 1.1       U-Boot工作过程 U-Boot启动内核的过程可 ...