handlers.js
来自「asp的bbs程序」· JavaScript 代码 · 共 655 行 · 第 1/2 页
JS
655 行
for (var item in ids) {
item = ids[item].split(':');
_Upload.Files[item[0]].filename = item[1];
}
}
startUpload();
}
// 获取文件个数及文件大小总和
function getFileCountAndSizes () {
var item;
// 判断确认要上传的文件是否超过大小
var sizes = count = 0;
for (item in _Upload.Files) {
count++;
if (_Upload.Files[item].iscover)
continue;
sizes += _Upload.Files[item].filesize;
}
_Upload.Count = count;
_Upload.Sizes = sizes;
if (!_Upload.SelectedAll()) {
$('add_upload') && ($('add_upload').clickEnabled = true);
clearUpload();
return true;
}
return false;
}
// 显示浮动层并开始上传
function startUpload () {
showUploadLayer();
_Upload.SwfUpload.startUpload();
}
// 显示浮动层
function showUploadLayer () {
// 是否开启文件上传进度层
if (!_Upload.Opened) {
_Upload.Opened = true;
Widget.Content('上传文件进度', $('file_upload'), 500, function () {
_Upload.CloseUploader();
displayLimitedFiles();
clearUpload();
});
$('clear_upload').style.display = 'none';
$('but_upload').style.display = 'none';
$('add_upload').onclick = function () {
if (!this.clickEnabled) return;
_Upload.SwfUpload.selectFiles();
this.clickEnabled = false;
};
$('add_upload').clickEnabled = false;
$('add_upload').parentNode.style.display = 'none';
/*
$('clear_upload').onclick = function () {
_Upload.SwfUpload.selectFiles();
};
*/
}
/// 添加到上传列表
// 清理无上传文件项的提示信息
var tipInfo = $('empty');
if (tipInfo) {
_Upload.TipInfo = tipInfo;
oNode.RemoveNode(tipInfo, $('item_container'));
}
for (var item in _Upload.Files) {
var id = _Upload.Files[item].id;
var iscover = !!_Upload.Files[item].iscover;
var isrename = !!_Upload.Files[item].isrename;
var filename = _Upload.Files[item].filename;
var filesize = _Upload.Files[item].filesize;
// 呈现该上传条目
var file_item = oNode.CreateNode('ul');
oNode.AddNode(file_item, $('item_container'));
file_item.tabIndex = ++_Upload.Length;
file_item.innerHTML = $('file_upload_item').innerHTML.replace(/\$/g, id);
// info
_Upload.Files[id] = {
id: id,
// file name String
filename: filename,
// file size Number
filesize: filesize,
// `ul` container HTMLElement
file_item: file_item,
// process bar
processing: $('processing_' + id),
// file icon HTMLElement
file_icon: $('fileicon_' + id),
// file name HTMLElement
file_name: $('filename_' + id),
// file size HTMLElement
file_size: $('filesize_' + id),
// file status HTMLElement
file_status: $('filestatus_' + id),
// 0: 未处理, 1: 等待验证, 2: 可上传或正在上传, 3: 上传完毕
//stoped_status : 0,
iscover: iscover,
isrename: isrename,
error: false,
deleted: false,
finished: false
};
_Upload.Files[id]['file_name'].innerHTML
= _Upload.Files[id]['file_name'].title
= filename;
// 状态
_Upload.Files[id]['file_size'].innerHTML = '准备上传';
}
// render
_Upload.Render();
}
// 格式化错误信息
function formatErrorInfo (err) {
var prefix = 'error:';
err = err.substr(prefix.length);
return err;
}
// 清理当前上传任务相关参数
function clearUpload () {
_Upload.Length = 0;
_Upload.Opened = false;
_Upload.ErrorCount = 0;
_Upload.FirstError = null;
_Upload.Count = 0;
_Upload.Sizes = 0;
for (var item in _Upload.Files) {
_Upload.SwfUpload.cancelUpload(item);
}
_Upload.Files = {};
_Upload.FilesLimit = [];
}
// 显示被限制的文件
function displayLimitedFiles () {
if (_Upload.FilesLimit.length == 0) return;
// 提示所有超过限制大小的文件
var str = '';
for (var i = 0, len = _Upload.FilesLimit.length; i < len; i++) {
if (str != '') str += '<br />';
str += "“" + _Upload.FilesLimit[i] + "“";
}
var filesize = _Upload.FileSizeLimit.split(/\s+/);
if (filesize[1].toLowerCase() == 'mb' && filesize[0] >= 1024) {
filesize[0] = Math.floor(filesize[0] / 1024) + Math.floor((filesize[0] % 1024) / 1024 * 10) / 10;
filesize[1] = 'G';
}
else {
filesize[0] = Math.floor(parseFloat(filesize[0]) * 10) / 10;
}
Widget.Alert('温馨提示', '您选择上传的文件中:<br />' + str + '<br />超过' + filesize[0] + filesize[1] + '的大小限制,不允许上传。');
}
/**********************************************/
// 上传指定文件
function uploadStart(file) {
try {
var item = _Upload.Files[file.id];
var uploadURL = _Upload.UploadUrl + '?type=' + _Upload.Type + '&filename=' + encodeURIComponent(item.filename) + _Upload.DirectoryID + _Upload.Path + (item.iscover ? '&iscover=true' : '') + (item.isrename ? '&isrename=true' : '') + _Upload.QueryString;
this.setUploadURL(uploadURL);
item.file_item.focus();
_Upload.ShowDebug('upload: ' + _Upload.UploadUrl + '?type=' + _Upload.Type + '&filename=' + encodeURIComponent(item.filename) + _Upload.DirectoryID + _Upload.Path + (item.iscover ? '&iscover=true' : '') + (item.isrename ? '&isrename=true' : '') + _Upload.QueryString);
}
catch (ex) {
//alert('uploadStart: ' + ex);
}
return true;
}
// 上传进度
function uploadProgress(file, bytesLoaded, bytesTotal) {
try {
/// 上传进程
var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
var item = _Upload.Files[file.id];
if (item.error) return;
// 进度
item.processing.style.width = (percent > 0 ? percent : 0) + '%';
// 文件大小
item.file_size.innerHTML = '<span style="float:left;width:40px;text-align:right;">' + formatFileSize(bytesLoaded) + '</span> / ' + formatFileSize(bytesTotal);
// 文件上传状态
item.file_status.innerHTML = '正在上传...';
} catch (ex) {
this.debug(ex);
}
}
/**********************************************/
// 格式化文件大小
function formatFileSize (filesize) {
if (Math.floor(filesize / Math.pow(1024, 3)) > 0) return Math.floor(filesize / Math.pow(1024, 3) * 10) / 10 + 'G';
if (Math.floor(filesize / Math.pow(1024, 2)) > 0) return Math.floor(filesize / Math.pow(1024, 2) * 10) / 10 + 'M';
if (Math.floor(filesize / 1024) > 0) return Math.floor(filesize / 1024 * 10) / 10 + 'K';
return filesize + 'B';
}
/**********************************************/
// 一个文件上传成功
function uploadSuccess(file, content) {
try {
var item = _Upload.Files[file.id];
var c = content;
content = content.split('|');
switch (content[0]) {
// 错误
case '-1':
_Upload.SwfUpload.cancelUpload(file.id);
item.error = true;
_Upload.ErrorCount++;
if (!_Upload.FirstError)
_Upload.FirstError = item;
item.file_icon.style.backgroundPosition = '-144px 0';
item.file_size.innerHTML = content[4];
item.file_status.innerHTML = '错误';
break;
// 冲突
case '0':
_Upload.SwfUpload.cancelUpload(file.id);
item.error = true;
_Upload.ErrorCount++;
if (!_Upload.FirstError)
_Upload.FirstError = item;
item.file_icon.style.backgroundPosition = '-144px 0';
item.file_size.innerHTML = content[4];
item.file_status.innerHTML = '错误';
break;
// 没冲突
//case '1':
default:
//item.stoped_status = 3;
item.file_status.innerHTML = '完毕';
// 上传完,返回文件信息
item.finished = true;
item.file_icon.style.backgroundPosition = '-48px 0';
_Upload.UploadedOne(item.filename, content, item);
}
// file info
_Upload.ShowDebug('文件' + item.filename + '上传完毕:' + serverData + ' ' + file.size);
} catch (ex) {
this.debug(ex);
}
}
// 上传错误
function uploadError(file, errorCode, message) {
try {
this.cancelUpload(file.id);
switch (errorCode) {
case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
//progress.setStatus("Upload Error: " + message);
this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
//progress.setStatus("Upload Failed.");
this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.IO_ERROR:
//progress.setStatus("Server (IO) Error");
this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
//progress.setStatus("Security Error");
this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
//progress.setStatus("Upload limit exceeded.");
this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
//progress.setStatus("Failed Validation. Upload skipped.");
this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
// If there aren't any files left (they were all cancelled) disable the cancel button
//if (this.getStats().files_queued === 0) {
// document.getElementById(this.customSettings.cancelButtonId).disabled = true;
//}
//progress.setStatus("Cancelled");
//progress.setCancelled();
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
//progress.setStatus("Stopped");
break;
default:
//progress.setStatus("Unhandled Error: " + errorCode);
this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
}
} catch (ex) {
this.debug(ex);
}
}
// all files complete
function uploadComplete(file) {
if (this.getStats().files_queued === 0 && _Upload.ErrorCount == 0) {
_Upload.UploadedAll();
}
if (_Upload.FirstError) {
$('upload_error').innerHTML = '当前有 <span class="error-count">' + _Upload.ErrorCount + '</span> 个文件上传失败。';
}
if (this.getStats().files_queued === 0 && _Upload.FirstError) {
$('upload_error').innerHTML = '总共有 <span class="error-count">' + _Upload.ErrorCount + '</span> 个文件上传失败。';
_Upload.FirstError.file_item.focus();
}
}
// This event comes from the Queue Plugin
function queueComplete(numFilesUploaded) {
return;
var status = document.getElementById("divStatus");
status.innerHTML = numFilesUploaded + " file" + (numFilesUploaded === 1 ? "" : "s") + " uploaded.";
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?