jfinal中使用百度编辑器上传图片的实现
来源:互联网 发布:网络借贷平台排行榜 编辑:程序博客网 时间:2024/05/29 19:47
1、首先需要把flash工具放入到项目中,。
2、然后在页面中写上:
<input id="curCount" name="curCount" type="hidden" value="0" />
加上导入图片的插件:
<object id="flash" codeBase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="900" align="middle" height="387">
<param name="_cx" value="16086"/>
<param name="_cy" value="7196"/>
<param name="flashvars" value="container=flashContainer&url=${ctx }/aaa/albums/picsave?id=${id }提交路径&
ext=%7B%22param1%22%3A%22value1%22%2C%20%22param2%22%3A%22value2%22%7D&
fileType=%7B%22description%22%3A%22%E5%9B%BE%E7%89%87%22%2C%20%22extension%22%3A%22*.gif%3B*.jpeg%3B*.png%3B*.jpg%22%7D&
flashUrl=${ctx }/flash/imageUploader.swfflash路径&width=900&height=387&gridWidth=121&
gridHeight=120&picWidth=100&picHeight=100&picDescFieldName=picname文件name&uploadDataFieldName=picfile上传的文件&
maxSize=4&compressSize=2&
maxNum=32&
compressSide=0&compressLength=900"/>
<param name="movie" value='${ctx }/flash/imageUploader.swf'/>
<param name="src" value='${ctx }/flash/imageUploader.swf'/>
<param name="wmode" value="window"/>
<param name="play" value="0"/>
<param name="loop" value="-1"/>
<param name="quality" value="high"/>
<param name="salign" value="lt"/>
<param name="menu" value="-1"/>
<param name="base" value=""/>
<param name="allowscriptaccess" value=""/>
<param name="scale" value="noscale"/>
<param name="devicefont" value="0"/>
<param name="embedmovie" value="0"/>
<param name="bgcolor" value=""/>
<param name="swremote" value=""/>
<param name="moviedata" value=""/>
<param name="seamlesstabbing" value="1"/>
<param name="profile" value="0"/>
<param name="profileaddress" value=""/>
<param name="profileport" value="0"/>
<param name="allownetworking" value="all"/>
<param name="allowfullscreen" value="false"/>
<param name="allowfullscreeninteractive" value=""/>
<param name="isdependent" value="0"/>
<param name="wmode" value="transparent"/>
<param name="movie" value='${ctx }/flash/imageUploader.swf'/>
<embed height="387" name="flash" type="application/x-shockwave-flash" align="middle"
pluginspage="http://www.macromedia.com/go/getflashplayer" width="900" src="${ctx }/flash/imageUploader.swf"
flashvars="container=flashContainer&url=${ctx }/aaa/albums/picsave?id=${id }&
ext=%7B%22param1%22%3A%22value1%22%2C%20%22param2%22%3A%22value2%22%7D&uploadDataFieldName=picfile&
fileType=%7B%22description%22%3A%22%E5%9B%BE%E7%89%87%22%2C%20%22extension%22%3A%22*.gif%3B*.jpeg%3B*.png%3B*.jpg%22%7D&
flashUrl=${ctx }/flash/imageUploader.swf&width=900&height=387&gridWidth=121&gridHeight=120&
ext=classpic.classpicId&picWidth=100&picHeight=100&picDescFieldName=picname&maxSize=4&compressSize=2&maxNum=32&
compressSide=0&compressLength=900" ver="10.0.0" wmode="transparent" errorMessage="Flash插件初始化失败,请更新您的FlashPlayer版本之后重试!">
</embed>
</object>
<div style="height:80px;padding-right:40px;">
<a id="upload"> </a>
<script type="text/javascript">
$('#upload').click(function() {
return upload();
});
</script>
</div>
3、加上提交按钮
css样式:
#upload {
width: 100px;
height: 30px;
float: right;
background: url("../images/upload.png");
margin: 3px 6px 0 0;
cursor: pointer;
}
4、加上Default.js文件
/***********************Flash事件*****************************/
/**
* 检查flash状态
* @private
* @param {Object} target flash对象
* @return {Boolean}
*/
function _checkReady(target) {
if (typeof target !== 'undefined' && typeof target.flashInit !== 'undefined' && target.flashInit()) {
return true;
} else {
return false;
}
}
/**
* 创建一个随机的字符串
* @private
* @return {String}
*/
function _createString() {
var prefix = 'mw__flash__';
return prefix + Math.floor(Math.random() * 2147483648).toString(36);
}
/**
* 为传入的匿名函数创建函数名
* @private
* @param {String|Function} fun 传入的匿名函数或者函数名
* @return {String}
*/
function _createFunName(fun) {
var name = '';
name = _createString();
window[name] = function () {
fun.apply(window, arguments);
};
return name;
}
/***
反复判断Flash是欧加载完成,完成后为Flash添加回调函数..
*/
var interval = setInterval(function () {
try {
var flash = thisMovie("flash");
if (_checkReady(flash)) { //轮询flash的某个方法即可
var callBack = [];
callBack[0] = _createFunName(selectFileCallback);
callBack[1] = _createFunName(exceedFileCallback);
callBack[2] = _createFunName(deleteFileCallback);
callBack[3] = _createFunName(StartUploadCallback);
callBack[4] = _createFunName(uploadCompleteCallback);
callBack[5] = _createFunName(uploadErrorCallback);
callBack[6] = _createFunName(allCompleteCallback);
callBack[7] = _createFunName(changeHeightCallback);
thisMovie("flash").call('setJSFuncName', [callBack]);
clearInterval(interval);
}
}
catch (ex) {
}
}, 20);
//获得Flash对象
function thisMovie(movieName) {
if (navigator.appName.indexOf("Misrosoft") != -1) {
return window[movieName];
}
else {
return document[movieName];
}
}
//事件
$(function ($) {
$("a").on("click","#upload" ,function () { return upload(); });
});
function Setbtn(count) {
$("#curCount").val(count);
}
// 通过添加文件按钮新增的需要上传文件
function selectFileCallback(selectFiles) {
var count = $("#curCount").val();
count = parseInt(count) + selectFiles.length;
Setbtn(count);
}
// 文件超出限制的最大体积时的回调
function exceedFileCallback(selectFiles) {
}
//被删除的文件: 用于控制上传按钮是否显示...
function deleteFileCallback(delFiles) {
var count = $("#curCount").val();
count = parseInt(count) - delFiles.length;
Setbtn(count);
}
//开始上传前执行的JS函数.
function StartUploadCallback(data) {
}
//上传单个文件后执行的JS函数.
function uploadCompleteCallback(data) {
try {
var count = $("#curCount").val();
count = parseInt(count) - 1;
Setbtn(count);
} catch (e) { }
}
//上传失败后执行的JS函数.
function uploadErrorCallback(data) {
clearTimeout(timeout);
if(!data.info){
alert("网络连接失败!请检查网络或者提交页面地址是否正确!");
}
}
//全部完成上传后执行::定向到相册界面
function allCompleteCallback(data) {
var aid=$("#aid").val();
alert("上传成功!");
window.location.href='pindex?aid='+aid;//保存成功之后跳转的方法
}
//改变Flash高度时执行
function changeHeightCallback(data) {
}
//开始上传:添加参数:aid,表示相册, mark,表示水印,需要为每个照片都添加这两个参数。。
function upload() {
var count = parseInt($("#curCount").val());
for (var i = 0; i < count; i++) {
thisMovie("flash").addCustomizedParams(i, { "state":"success"});
}
thisMovie("flash").upload();
}
5、后台方法:
String imgpath = PathKit.getWebRootPath() + VIDEO_RESOURCE_IMAGE_DIR;
UploadFile Filedata=getFile("picfile",PathKit.getWebRootPath() + VIDEO_RESOURCE_IMAGE_DIR );//文件和保存路径
String FiledataFileName=getPara("pname") ;//文件名称
String sufix = "";
String newFilename = "";
String state = "SUCCESS";
if (getPara("id") == null || getPara("id").trim().length() == 0) {//新增
int aid = getParaToInt("aid");
Photo photo=new Photo();
photo.set("alubms_id",aid);
if (Filedata != null ) {
sufix = Filedata.getFileName();
sufix = sufix.substring(sufix.lastIndexOf("."), sufix.length());
newFilename = Id.getFileID() + sufix;
photo.set("pfile", VIDEO_RESOURCE_IMAGE_DIR+newFilename);
File ff = new File(PathKit.getWebRootPath()+photo.getStr("pfile"));
Filedata.getFile().renameTo(ff);
if (FiledataFileName == null || FiledataFileName.trim().length() == 0) {
FiledataFileName = newFilename;
}
if (FiledataFileName != null) {
photo.set("pname", FiledataFileName);
}
photo.save();
String smallName = newFilename;
try {
Thumbnails.of(imgpath + newFilename).size(197, 178).toFile(imgpath + smallName);//压缩图片需要导入thumbnailator-0.4.7.jar
} catch (IOException e) {
e.printStackTrace();
}
} else {
state = "";
}
效果页面:
- jfinal中使用百度编辑器上传图片的实现
- JFinal+ajaxfileupload实现图片的异步上传
- JFinal+WebUploader实现图片的异步上传
- JFinal使用ajaxfileupload实现图片上传 及预览
- Laravel5.2中使用xheditor编辑器实现上传图片功能
- JFinal学习笔记(四) 实现简单的图片上传
- jfinal框架ueditor上传图片的实现方法
- MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦
- 织梦使用百度Ueditor编辑器上传图片自动生成绝对路径实现方法(测试可用)
- 如何调用百度编辑器ueditor的上传图片、上传文件
- 关于使用百度编辑器(ueditor编辑器)跨域上传将图片上传到独立服务器的问题
- 百度编辑器,图片上传优化
- 百度编辑器之上传图片
- 百度编辑器上传图片至七牛云
- 使用百度editor 富文本编辑器上传图片
- 百度富文本编辑器UEditor的使用和他的图片上传
- Ueditor1.4.3百度编辑器配置(包括上传图片)的使用心得
- DWZ+Jfinal结合做的图片上传
- jQuery 1.9.1中live()变更
- 小技巧 父视图改变透明色不影响子视图
- J2EE 基础篇 - @ - 1 Html5 简介
- Android:跟手滑动的布局ViewGroup
- sql server 2008 游标循环更新数据
- jfinal中使用百度编辑器上传图片的实现
- 基于MINA框架快速开发网络应用程序
- 用于产生一致输出的矢量绘图库——cairo
- 人民日报语料库抓取python实现(二)--多线程
- java教程
- 解决安装使用Genymotion过程出现的一些问题
- python编程入门读书笔记2
- scroller
- 堆排序--C语言实现