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&amp;url=${ctx }/aaa/albums/picsave?id=${id }提交路径&amp;
            ext=%7B%22param1%22%3A%22value1%22%2C%20%22param2%22%3A%22value2%22%7D&amp;
            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&amp;
            flashUrl=${ctx }/flash/imageUploader.swfflash路径&amp;width=900&amp;height=387&amp;gridWidth=121&amp;
            gridHeight=120&amp;picWidth=100&amp;picHeight=100&amp;picDescFieldName=picname文件name&amp;uploadDataFieldName=picfile上传的文件&amp;
            maxSize=4&amp;compressSize=2&amp;
            maxNum=32&amp;
            compressSide=0&amp;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&amp;url=${ctx }/aaa/albums/picsave?id=${id }&amp;
             ext=%7B%22param1%22%3A%22value1%22%2C%20%22param2%22%3A%22value2%22%7D&amp;uploadDataFieldName=picfile&amp;
             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&amp;
             flashUrl=${ctx }/flash/imageUploader.swf&amp;width=900&amp;height=387&amp;gridWidth=121&amp;gridHeight=120&amp;
              ext=classpic.classpicId&amp;picWidth=100&amp;picHeight=100&amp;picDescFieldName=picname&amp;maxSize=4&amp;compressSize=2&amp;maxNum=32&amp;
             compressSide=0&amp;compressLength=900" ver="10.0.0" wmode="transparent" errorMessage="Flash插件初始化失败,请更新您的FlashPlayer版本之后重试!">
        </embed>
        </object>

<div style="height:80px;padding-right:40px;">
 <a id="upload">&nbsp;</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 = "";
}

效果页面:


0 0
原创粉丝点击