图片上传功能(EasyUI前台框架+SSM框架)
文件上传步骤:
* 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框架)的更多相关文章
- megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题
最近在弄微信端的公众号.订阅号的相关功能,发现原本网页上用的uploadify图片上传功能到手机端有的手机类型上就不能用了,比如iphone,至于为啥我想应该不用多说了吧(uploadify使用fla ...
- Ueditor图片上传功能的配置
之前的项目中碰到过图片上传功能的配置问题,但是没有记录下来,今天有个朋友突然又问到了我这个问题,当时没想起来之前怎么解决的,后来看了Ueditor的官方文档才回想起来. 官网文档巨多,一般大家遇到问题 ...
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...
- drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法二
drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法一 中介绍了ckeditor的安装和配置方法,其实还有另一种新方法,不用IMCE模块. 不过需要ckfinder的JS库,可以 ...
- ssm整合-图片上传功能(转)
本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能. 以一个添加用户的案例介绍(主要是将上传文件). 一.需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以 ...
- springmvc文件上传下载简单实现案例(ssm框架使用)
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...
- FLASH图片上传功能—从百度编辑器UEditor里面提取出来
为了记录工作中碰到的各种问题,以及学习资料整理,今天开始,将以往的文章进行了一个整理,以后也开始认真的记录学习过程中的各种问题 在HTML里面的文件上传功能一直是个问题,为了实现上传文件大小限制,怎样 ...
- Dede后台广告管理模块增加图片上传功能插件
用户问题:网站广告后台管理非常方便,但是织梦后台的广告管理模块,发布广告时图片没有上传选项,只能用URL地址,很不方便,那么织梦帮就教大家一个方法实现广告图片后台直接上传,非常方便.先给大家看下修改后 ...
- 图片上传功能<转>http://blog.csdn.net/u011159417/article/details/50126023
以前也实现过上传,只不过每次都是,写完之后没有总结,下次遇到时,还要重新写,重新调式,很是浪费时间,所以,今天实现一个上传图片的功能,包括简单的页面和servlet,下次再要写这个功能时,直接拿过来就 ...
随机推荐
- bzoj4810 [Ynoi2017]由乃的玉米田 bitset优化+暴力+莫队
[Ynoi2017]由乃的玉米田 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 917 Solved: 447[Submit][Status][Di ...
- HDU3308 线段树(区间合并)
LCIS Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU1384 差分约束
Intervals Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- rank() within group用法【转】
参考:http://www.itpub.net/thread-241824-1-1.html http://blog.itpub.net/13379967/viewspace-481811/ ) w ...
- 使用kubeadm安装Kubernetes 1.12
使用kubeadm安装Kubernetes 1.12 https://blog.frognew.com/2018/10/kubeadm-install-kubernetes-1.12.html 测试环 ...
- 照片EXIF信息的读取和改写的JAVA实现
由于项目需要对照片的EXIF信息进行处理,因此在网上搜索了一番.捣鼓出来了,写下,总结. 需要用到2个jar包,metadata-extractor-2.3.1和mediautil-1.0.这2个ja ...
- Nginx完整配置配置样例
nginx.conf user www www; ## Default: nobody worker_processes 5; ## Default: 1 error_log logs/error.l ...
- consul windows安装
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开 ...
- MSSQL DBOtherSQL
--------------------------查询表中的数据------------------------------ --1.请查询出MyStudent表中的所有数据 --下面的语句表示查询 ...
- poj 1797
2013-09-08 09:48 最大生成树,输出生成树中最短的边儿即可 或者对边儿排序,二份答案+BFS判断是否1连通N 时间复杂度都是O(NlogN)的 附最大生成树pascal代码 //By B ...