Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==========================================================================
- // Upload.SampleController
- // ==========================================================================
- require('swfupload');
- require('fileprogress');
- require('core');
- /** @class
- (Document Your View Here)
- @extends SC.Object
- @author AuthorName
- @version 0.1
- @static
- */
- Upload.sampleController = SC.Object.create(
- /** @scope Upload.sampleController */ {
- init: function(){
- var swfu;
- SC.callOnLoad (function () {
- swfu = new SWFUpload({
- // Backend settings
- upload_url: "../formsdemo/upload.php", // Relative to the SWF file, you can use an absolute URL as well.
- file_post_name: "resume_file",
- // Flash file settings
- file_size_limit : "10240", // 10 MB
- file_types : "*.*", // or you could use something like: "*.doc;*.wpd;*.pdf",
- file_types_description : "All Files",
- file_upload_limit : "0", // Even though I only want one file I want the user to be able to try again if an upload fails
- file_queue_limit : "1", // this isn't needed because the upload_limit will automatically place a queue limit
- // Event handler settings
- swfupload_loaded_handler : swfUploadLoaded,
- //file_dialog_start_handler : fileDialogStart, // I don't need to override this handler
- file_queued_handler : fileQueued,
- file_queue_error_handler : fileQueueError,
- file_dialog_complete_handler : fileDialogComplete,
- //upload_start_handler : uploadStart, // I could do some client/JavaScript validation here, but I don't need to.
- upload_progress_handler : uploadProgress,
- upload_error_handler : uploadError,
- upload_success_handler : uploadSuccess,
- upload_complete_handler : uploadComplete,
- // Flash Settings
- flash_url : static_url('swfupload_f9'), // Relative to this file
- // UI settings
- swfupload_element_id : "flashUI", // setting for the graceful degradation plugin
- degraded_element_id : "degradedUI",
- custom_settings : {
- progress_target : "fsUploadProgress",
- upload_successful : false
- },
- // Debug settings
- debug: false
- });
- });
- },
- buttonPressed: function() {
- fileBrowse.apply(this.swfu);
- alert('hehehe');
- },
- swfUploadLoaded: function(){
- var btnSubmit = document.getElementById("btnSubmit");
- btnSubmit.onclick = doSubmit;
- btnSubmit.disabled = true;
- },
- fileBrowse: function(){
- var txtFileName = document.getElementById("txtFileName");
- txtFileName.value = "";
- cancelUpload();
- selectFile();
- },
- // Called by the submit button to start the upload
- doSubmit: function(e) {
- e = e || window.event;
- if (e.stopPropagation) {
- e.stopPropagation();
- }
- e.cancelBubble = true;
- try {
- swfy.startUpload();
- }
- catch (ex) {
- }
- return false;
- },
- // Called by the queue complete handler to submit the form
- uploadDone: function() {
- try {
- document.forms[0].submit();
- } catch (ex) {
- alert("Error submitting the form");
- }
- },
- fileQueueError: function(file, errorCode, message) {
- try {
- // Handle this error separately because we don't want to create a FileProgress element for it.
- switch (errorCode) {
- case 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.")));
- return;
- case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
- alert("The file you selected is too big.");
- this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
- case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
- alert("The file you selected is empty. Please select another file.");
- this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
- case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
- alert("The file you choose is not an allowed file type.");
- this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
- default:
- alert("An error occurred in the upload. Try again later.");
- this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
- }
- } catch (e) {}
- },
- fileQueued: function(file) {
- try {
- var txtFileName = document.getElementById("txtFileName");
- txtFileName.value = file.name;
- } catch (e) {}
- },
- uploadProgress: function(file, bytesLoaded, bytesTotal) {
- try {
- var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
- file.id = "singlefile";
- var progress = new FileProgress(file, this.customSettings.progress_target);
- progress.setProgress(percent);
- progress.setStatus("Uploading...");
- }
- catch(e){}
- },
- uploadSuccess: function(file, serverData) {
- try {
- file.id = "singlefile";
- var progress = new FileProgress(file, this.customSettings.progress_target);
- progress.setComplete();
- progress.setStatus("Complete.");
- progress.toggleCancel(false);
- if (serverData === " ") {
- this.customSettings.upload_successful = false;
- }
- else {
- this.customSettings.upload_successful = true;
- document.getElementById("hidFileID").value = serverData;
- }
- }
- catch (e) {}
- },
- uploadComplete: function(file) {
- try {
- if (this.customSettings.upload_successful) {
- document.getElementById("btnBrowse").disabled = "true";
- uploadDone();
- }
- else {
- file.id = "singlefile";
- var progress = new FileProgress(file, this.customSettings.progress_target);
- progress.setError();
- progress.setStatus("File rejected");
- progess.toggleCancel(false);
- var txtFileName = document.getElementById("txtFileName");
- txtFileName.value = "";
- alert("There was a problem with the upload.\nThe server did not accept it.");
- }
- }
- catch (e){}
- },
- uploadError: function(file, errorCode, message) {
- try {
- var txtFileName = document.getElementById("txtFileName");
- txtFileName.value = "";
- validateForm();
- // Handle this error separately because we don't want to create a FileProgress element for it.
- switch (errorCode) {
- case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
- alert("There was a configuration error. You will not be able to upload a resume at this time.");
- this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
- return;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
- alert("You may only upload 1 file.");
- this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
- case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
- case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
- break;
- default:
- alert("An error occurred in the upload. Try again later.");
- this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
- }
- file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
- var progress = new FileProgress(file, this.customSettings.progress_target);
- progress.setError();
- progress.toggleCancel(false);
- switch (errorCode) {
- case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
- progress.setStatus("Upload Error");
- 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.FILE_CANCELLED:
- progress.setStatus("Upload Cancelled");
- this.debug("Error Code: Upload Cancelled, File name: " + file.name + ", Message: " + message);
- break;
- case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
- progress.setStatus("Upload Stopped");
- this.debug("Error Code: Upload Stopped, File name: " + file.name + ", Message: " + message);
- break;
- }
- }
- catch (e) {}
- }
- })
Add Comment
Please, Sign In to add comment