/* * 图片上传 * 配合imageUploader.swf 一起使用 */ /** * 检查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 = 'bd__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 FLASH_ID = "flashupload_houseimg"; var interval = setInterval(function () { try { var flash = thisMovie(FLASH_ID); if (!flash) { return; } 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_ID).call('setJSFuncName', [callBack]); clearInterval(interval); } } catch (ex) { } }, 20); //获得Flash对象 function thisMovie_old(movieName) { if (navigator.appName.indexOf("Misrosoft") != -1) { return window[movieName]; } else { return document[movieName]; } } function thisMovie(movieName) { var isIE = navigator.appName.indexOf("Microsoft") != -1; if (isIE) { return window[movieName] } else { return document.embeds[movieName]; } //if (window.document[movieName]) { // return window.document[movieName]; //} //else if (navigator.appName.indexOf("Microsoft") == -1) { // if (document.embeds && document.embeds[movieName]) { // return document.embeds[movieName]; // } //} else { // return document.getElementById(movieName); // //return document[movieName]; //} } function thisMovie_xxx(movieName) { //这个是通用的查找Flash的函数。IE下是object,而FF下是document var isIE = navigator.appName.indexOf("Microsoft") != -1; return (isIE) ? window[movieName] : document[movieName]; } // 通过添加文件按钮新增的需要上传文件 function selectFileCallback(selectFiles) { } // 文件超出限制的最大体积时的回调 function exceedFileCallback(selectFiles) { } //被删除的文件: 用于控制上传按钮是否显示... function deleteFileCallback(delFiles) { } //开始上传前执行的JS函数. function StartUploadCallback(data) { } //上传成功一个文件后执行的JS函数.(data参数使用于以下所有回调函数,关键是data.info) //data.filename: "1_121029084117_2.png" //data.filetype :".png" //data.filesize :864163 //data.info: "{'url':'Upload//3e9a8006-c7a9-4b26-a015-f0bac4435613.png','title':'1_121029084117_2.png','original':'1_121029084117_2.png','state':'SUCCESS'}" function uploadCompleteCallback(data) { if (data != null && data != 'undefined') { //转json data.info = jQuery.parseJSON(data.info); var _fids = $('#result_fids').val(); var _urls = $('#result_urls').val(); $('#result_fids').val((_fids == '') ? data.info.fid : (_fids + ',' + data.info.fid)); $('#result_urls').val((_urls == '') ? data.info.url : (_urls + ',' + data.info.url)); } } //上传失败后执行的JS函数. function uploadErrorCallback(data) { alert('上传失败\r\n\r\n' + data.info); } //全部完成上传后执行 function allCompleteCallback(data) { if (data != null && data != 'undefined') { //alert('allCompleteCallback:' + data); } } //改变Flash高度时执行 function changeHeightCallback(data) { } //事件 //迁移到页面上了 //$(function () { // $("#btnFlashUpload").on("click", function () { // //return upload(); // //return thisMovie(FLASH_ID).upload(); // return thisMovie(FLASH_ID).call('upload'); // }); //}); //开始上传 //function upload() { // thisMovie(FLASH_ID).upload(); //}