123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- /* This is an example of how to cancel all the files queued up. It's made somewhat generic. Just pass your SWFUpload
- object in to this method and it loops through cancelling the uploads. */
- function cancelQueue(instance) {
- document.getElementById(instance.customSettings.cancelButtonId).disabled = true;
- instance.stopUpload();
- var stats;
-
- do {
- stats = instance.getStats();
- instance.cancelUpload();
- } while (stats.files_queued !== 0);
-
- }
- /* **********************
- 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 fileDialogStart() {
- /* I don't need to do anything here */
- }
- function fileQueued(file) {
- try {
- // You might include code here that prevents the form from being submitted while the upload is in
- // progress. Then you'll want to put code in the Queue Complete handler to "unblock" the form
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- //progress.setStatus("Pending...");
- progress.setStatus("等待...");
- progress.toggleCancel(true, this);
- } catch (ex) {
- this.debug(ex);
- }
- }
- function fileQueueError(file, errorCode, message) {
- try {
- if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
- //alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
- alert("添加的文件过多.\n" + (message === 0 ? "You have reached the upload limit." : "你可以最多 " + (message > 1 ? "选择 " + message + " 个文件." : "1个文件.")));
- return;
- }
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- progress.setError();
- progress.toggleCancel(false);
- switch (errorCode) {
- case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
- //progress.setStatus("File is too big.");
- progress.setStatus("文件太大,请上传大小为"+file_size_limit/1024+"M以内的文件.");
- 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("Cannot upload Zero Byte files.");
- progress.setStatus("不能上传大小为0B的文件.");
- 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("Invalid File Type.");
- progress.setStatus("文件类型无效.");
- this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
- //alert("You have selected too many files. " + (message > 1 ? "You may only add " + message + " more files" : "You cannot add any more files."));
- alert("上传文件选的过多。");
- break;
- default:
- if (file !== null) {
- progress.setStatus("未知错误.");
- }
- this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- }
- } catch (ex) {
- this.debug(ex);
- }
- }
- function fileDialogComplete(numFilesSelected, numFilesQueued) {
- try {
- if (this.getStats().files_queued > 0) {
- document.getElementById(this.customSettings.cancelButtonId).disabled = false;
- }
-
- /* I want auto start and I can do that here */
- this.startUpload();
- } 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 */
- var progress = new FileProgress(file, this.customSettings.progressTarget);
-
- //progress.setStatus("Uploading...");
- progress.setStatus("上传中...");
- progress.toggleCancel(true, this);
- this.setPostParams({
- 'fileName':encodeURIComponent(file.name),
- 'fileType':encodeURIComponent(file.type),
- 'filepath':file_path,
- 'fileYWBM':file_YWBM
- });
-
- //var post_params = this.settings.post_params;
- // Ext.apply(post_params,{
- // 'fileName':encodeURI(file.name)
- // });
- // this.setPostParams(post_params);
-
-
- }
- 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("Uploading...");
- progress.setStatus("上传中...");
- } catch (ex) {
- this.debug(ex);
- }
- }
- function uploadSuccess(file, serverData) {
- try {
- var progress = new FileProgress(file, this.customSettings.progressTarget);
- alert(file.name);
- progress.setComplete();
- progress.setStatus("Complete.");
- progress.toggleCancel(false);
-
-
-
- } catch (ex) {
- this.debug(ex);
- }
- }
- function uploadComplete(file) {
- try {
- /* I want the next upload to continue automatically so I'll call startUpload here */
- if (this.getStats().files_queued === 0) {
- document.getElementById(this.customSettings.cancelButtonId).disabled = true;
- } else {
- this.startUpload();
- }
- } 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("Upload Error: " + message);
- this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
- //progress.setStatus("Configuration Error");
- progress.setStatus("配置错误.");
- this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
- //progress.setStatus("Upload Failed.");
- progress.setStatus("上传失败.");
- 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");
- progress.setStatus("服务器 (IO) 错误.");
- this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
- //progress.setStatus("Security Error");
- progress.setStatus("安全错误.");
- 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.");
- progress.setStatus("上传的文件过多.");
- this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
- //progress.setStatus("File not found.");
- progress.setStatus("找不到文件.");
- this.debug("Error Code: The file was not found, 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 (this.getStats().files_queued === 0) {
- document.getElementById(this.customSettings.cancelButtonId).disabled = true;
- }
- //progress.setStatus("Cancelled");
- progress.setStatus("取消上传");
- progress.setCancelled();
- break;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
- //progress.setStatus("Stopped");
- progress.setStatus("已停止");
- break;
- default:
- progress.setStatus("Unhandled Error: " + error_code);
- this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- break;
- }
- } catch (ex) {
- this.debug(ex);
- }
- }
|