图片上传功能(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,下次再要写这个功能时,直接拿过来就 ...
随机推荐
- 题解 【luogu P1541 NOIp提高组2010 乌龟棋】
题目链接 题解 题意: 有一些格子,每个格子有一定分数. 给你四种卡片,每次可以使用卡片来前进1或2或3或4个格子并拾取格子上的分数 每张卡片有数量限制.求最大分数. 分析 设\(dp[i]\)为第前 ...
- NYOJ 745 dp
蚂蚁的难题(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种 ...
- mysql中设置小数
decimal Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位.例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位. 例:decimal(2,1) ...
- redis 选择数据库
redis 127.0.0.1:6379> SELECT 1 # 使用 1 号数据库
- div模拟textarea在ios下不兼容的问题解决
今天发现一个好东西,赶紧记下来,我在用textarea的时候,想要自适应高度,这样就不会出现滚动条.网上找了很多,都是用div模拟的,但是好扯淡,div模拟的在ios下不能聚焦并且不能输入.真坑... ...
- HDU 5901 Count primes 大素数计数
题意:计算1~N间素数的个数(N<=1e11) 题解:题目要求很简单,作为论文题,模板有两种 \(O(n^\frac{3}{4} )\),另一种lehmer\(O(n^\frac{2}{3})\ ...
- MySQL数据库运行环境的搭建
第一步:安装wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b文件,安装过程中可能会遇到问题,把遇到的问题代码复制粘贴到360人工服务,查找方案 ...
- JS之window对象
window对象 window属性: opener:打开当前窗口的源窗口,如果这个窗口是由别的网页点击链接跳转过来的,或者是从另外一个页面点击打开窗口打开的,opener就是找到源页面的.如果当前窗口 ...
- 转载:WebView
前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的.今 ...
- 报错注入遇到ERROR 1242 (21000): Subquery returns more than 1 row解决方案
我的SQL语句是这样写的. mysql> select 1,2,3 and updatexml(1,concat(1,(select user from mysql.user),1),1);ER ...