123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- /* Demo Note: This demo uses a FileProgress class that handles the UI for displaying the file name and percent complete.
- The FileProgress class is not part of SWFUpload.
- */
- /* **********************
- Event Handlers
- These are my custom event handlers to make my
- web application behave the way I went when SWFUpload
- completes different tasks. These aren't part of the SWFUpload
- package. They are part of my application. Without these none
- of the actions SWFUpload makes will show up in my application.
- ********************** */
- function preLoad() {
- if (!this.support.loading) {
- alert(lang.flashVersionError);
- return false;
- }
- return true;
- }
- function loadFailed() {
- alert(lang.flashLoadingError);
- }
- function fileQueued(file) {
- try {
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- progress.setStatus(lang.fileUploadReady);
- progress.toggleCancel(true, this, lang.delUploadQueue);
- } catch (ex) {
- this.debug(ex);
- }
- }
- function fileQueueError(file, errorCode, message) {
- try {
- if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
- alert(lang.limitPrompt1 + message + lang.limitPrompt2);
- return;
- }
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- progress.setError();
- progress.toggleCancel(true, this, lang.delFailFile);
- switch (errorCode) {
- case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
- progress.setStatus(lang.fileSizeLimit);
- this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
- progress.setStatus(lang.emptyFile);
- this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
- progress.setStatus(lang.fileTypeError);
- this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- default:
- if (file !== null) {
- progress.setStatus(lang.unknownError);
- }
- this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- }
- } catch (ex) {
- this.debug(ex);
- }
- }
- function uploadStart(file) {
- try {
- /* I don't want to do any file validation or anything, I'll just update the UI and
- return true to indicate that the upload should start.
- It's important to update the UI here because in Linux no uploadProgress events are called. The best
- we can do is say we are uploading.
- */
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- progress.setStatus(lang.fileUploading);
- progress.toggleCancel(true, this, lang.cancelUpload);
- } catch (ex) {
- }
- return true;
- }
- function uploadProgress(file, bytesLoaded, bytesTotal) {
- try {
- var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- progress.setProgress(percent);
- progress.setStatus(lang.fileUploading);
- } catch (ex) {
- this.debug(ex);
- }
- }
- function uploadError(file, errorCode, message) {
- try {
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- progress.setError();
- //progress.toggleCancel(false);
- switch (errorCode) {
- case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
- progress.setStatus(lang.netError + message);
- this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
- progress.setStatus(lang.failUpload);
- 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(lang.serverIOError);
- this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
- progress.setStatus(lang.noAuthority);
- this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
- progress.setStatus(lang.fileNumLimit);
- 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(lang.failCheck);
- 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(lang.fileCanceling);
- progress.setCancelled();
- break;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
- progress.setStatus(lang.stopUploading);
- break;
- default:
- progress.setStatus(lang.unknownError + errorCode);
- this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- }
- } catch (ex) {
- this.debug(ex);
- }
- }
- function uploadComplete(file) {
- //alert(file);
- // if (this.getStats().files_queued === 0) {
- // document.getElementById(this.customSettings.cancelButtonId).disabled = true;
- // }
- }
- // This event comes from the Queue Plugin
- function queueComplete(numFilesUploaded) {
- var status = document.getElementById("divStatus");
- var num = status.innerHTML.match(/\d+/g);
- status.innerHTML = ((num && num[0] ? parseInt(num[0]) : 0) + numFilesUploaded) + lang.statusPrompt;
- }
|