Ueditor抓取远程图片
来源:互联网 发布:vb串口通信及编程实例 编辑:程序博客网 时间:2024/05/18 00:13
action:catchimage
对应js:ueditor.all.js中的catchremoteimage方法
原理:通过后台传递的新url地址替换原本的url地址
过程:
1、在调用的ueditor的页面js中将远程图片的地址重写:
var ue = UE.getEditor('webview',{initialFrameHeight:300,initialFrameWidth:600 });
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage' || action == 'uploadfile' ) {
return CommonJs.getBasePath() +'common/ueditorUploadFile.json?floder=yimifin/advertise/';
}else if(action == 'catchimage'){//重定义远程文件上传地址
return CommonJs.getBasePath() +'common/ueditorUploadRemoteFile.json?floder=yimifin/advertise/';
} else {
return this._bkGetActionUrl.call(this, action);
}
};
// 复写UEDITOR的getContentLength方法 解决富文本编辑器中一张图片或者一个文件只能算一个字符的问题,可跟数据库字符的长度配合使用
UE.Editor.prototype._bkGetContentLength = UE.Editor.prototype.getContentLength;
UE.Editor.prototype.getContentLength = function(){
return this.getContent().length;
}
2、修改相应的后台代码:注意返回数据的格式
public void ueditorUploadRemoteFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
String floder = request.getParameter("floder");
String[] sources = request.getParameterValues("source[]");
JSONObject jsonObject = new JSONObject();
jsonObject.put("list", fileUploadService.uploadRemoteFileToQiNiu(sources, floder));
jsonObject.put("state", "SUCCESS");
response.getWriter().print(jsonObject);
}
public List<Map<String,Object>> uploadRemoteFileToQiNiu(String[] sources, String uploadRootPath)
throws Exception {
// TODO Auto-generated method stub
// 永远保存新的文件名
String newFileName = null;
List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();
for(int i = 0 ; i < sources.length ; i++){
String source = sources[i];
if(StringUtils.hasLength(source)){
File dirFile = new File(source);
// 如果当前路径不存在,那么创建
if (!dirFile.exists()) {
dirFile.mkdirs();
}
URL url = new URL(source);
HttpURLConnection httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
// 上传文件
try {
// 取出后缀名
String hzm = source.substring(source.lastIndexOf("."),source.length());
// 文件上传
newFileName = UUID.randomUUID() + hzm;
map.put("source", source);
map.put("url", fileShowPrefixPath+fileUploadRootPath+newFileName);
map.put("state", "SUCCESS");
result.add(map);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 如果文件名为null,那么返回空
return result;
}
对应js:ueditor.all.js中的catchremoteimage方法
原理:通过后台传递的新url地址替换原本的url地址
过程:
1、在调用的ueditor的页面js中将远程图片的地址重写:
var ue = UE.getEditor('webview',{initialFrameHeight:300,initialFrameWidth:600 });
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage' || action == 'uploadfile' ) {
return CommonJs.getBasePath() +'common/ueditorUploadFile.json?floder=yimifin/advertise/';
}else if(action == 'catchimage'){//重定义远程文件上传地址
return CommonJs.getBasePath() +'common/ueditorUploadRemoteFile.json?floder=yimifin/advertise/';
} else {
return this._bkGetActionUrl.call(this, action);
}
};
// 复写UEDITOR的getContentLength方法 解决富文本编辑器中一张图片或者一个文件只能算一个字符的问题,可跟数据库字符的长度配合使用
UE.Editor.prototype._bkGetContentLength = UE.Editor.prototype.getContentLength;
UE.Editor.prototype.getContentLength = function(){
return this.getContent().length;
}
2、修改相应的后台代码:注意返回数据的格式
public void ueditorUploadRemoteFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
String floder = request.getParameter("floder");
String[] sources = request.getParameterValues("source[]");
JSONObject jsonObject = new JSONObject();
jsonObject.put("list", fileUploadService.uploadRemoteFileToQiNiu(sources, floder));
jsonObject.put("state", "SUCCESS");
response.getWriter().print(jsonObject);
}
public List<Map<String,Object>> uploadRemoteFileToQiNiu(String[] sources, String uploadRootPath)
throws Exception {
// TODO Auto-generated method stub
// 永远保存新的文件名
String newFileName = null;
List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();
for(int i = 0 ; i < sources.length ; i++){
String source = sources[i];
if(StringUtils.hasLength(source)){
File dirFile = new File(source);
// 如果当前路径不存在,那么创建
if (!dirFile.exists()) {
dirFile.mkdirs();
}
URL url = new URL(source);
HttpURLConnection httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
// 上传文件
try {
// 取出后缀名
String hzm = source.substring(source.lastIndexOf("."),source.length());
// 文件上传
newFileName = UUID.randomUUID() + hzm;
InputStream inputStream = httpUrl.getInputStream();
//上传文件
Map<String,Object> map = new HashMap<String,Object>();map.put("source", source);
map.put("url", fileShowPrefixPath+fileUploadRootPath+newFileName);
map.put("state", "SUCCESS");
result.add(map);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 如果文件名为null,那么返回空
return result;
}
阅读全文
0 0
- Ueditor抓取远程图片
- 百度UEditor编辑器关闭抓取远程图片功能(默认开启)
- UEditor编辑器如何关闭抓取远程图片本地化功能
- 远程抓取图片
- 抓取远程图片
- 远程抓取图片
- 远程抓取图片
- 一个PHP的远程图片抓取函数
- php远程抓取网站图片并保存
- php远程抓取网站图片并保存
- PHP抓取远程图片到本地
- 将远程图片抓取到本地
- 抓取远程图片到本地,小实例
- php远程抓取网站图片并保存
- php远程抓取网站图片并保存
- PHP抓取远程图片到本地保存
- php如何抓取远程图片到七牛
- php远程抓取网站图片并保存
- jqueryeasyui 时间戳格式
- linux :grep
- (1)Java虚拟机:Java内存区域与内存溢出异常
- 7-LTE QoS: SDF and EPS Bearer QoS
- 日常站点开发常用到的几个JavaScript方法
- Ueditor抓取远程图片
- 银联支付需要的证书(下载和导出以及上传流程)
- 嵌入式高手修炼之路,想月薪30K就努力学
- Makefile中变量的定义
- Linux系统介绍(五)常用命令
- MySQL【Error Code:1175】
- 我们物联网专业的嵌入式实习-day01(开发智能家居系统-linux基本命令)
- Scala对象
- Stanford Machine Learning 公开课笔记(1) Linear Regression