2025-03-27 15:05:14 +08:00

171 lines
4.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 图片上传
* 配合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();
//}