?? handlers.js
字號:
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -