
What is SWFUpload?
SWFUpload is a library that allows to our website’s users to upload files to the server, using a combination of Flash and JavaScript.
Download library
The form
application/views
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <?php echo form_open( 'process_form/process' ); // Here we put the controller's URL and the function which will process the form?> < div > <?php echo form_label( 'File:' , 'file' ); $data = array( 'id' => 'txtFileName' , 'value' => '' , 'size' => 50, 'disabled' => 'disabled' , 'style' => 'border: solid 1px; background-color: #FFFFFF;' ); echo form_input($data); //Insert the text field which will hold the file anem once it is uploaded ?> <span id= "spanButtonPlaceholder" ></span> (20 MB max) </ div > < div id= "fsUploadProgress" ></ div > <input type= "hidden" name= "hidFileID" id= "hidFileID" value= "" /> <br /> <?php $extra = 'id="btnSubmit"' ; echo form_submit( 'upload' , 'Send' ,$extra); echo form_close(); ?> <!-- Add JavaScript files for SWFUpload --> <script type= "text/javascript" src= "<?php echo base_url();?>js/swfupload/swfupload.js" ></script> <script type= "text/javascript" src= "<?php echo base_url();?>js/swfupload/handlers.js" ></script> <script type= "text/javascript" src= "<?php echo base_url();?>js/swfupload/fileprogress.js" ></script> <script type= "text/javascript" > var swfu; window.onload = function () { swfu = new SWFUpload({ // Backend settings upload_url: "<?php echo base_url();?>process_form/upload" , file_post_name: "resume_file" , // Flash file settings file_size_limit : "20 MB" , //File size limit file_types : "*.jpg" , // or you could use something like: "*.doc;*.wpd;*.pdf", file_types_description : "Image Files" , file_upload_limit : 0, file_queue_limit : 1, // Event handler settings swfupload_loaded_handler : swfUploadLoaded,file_dialog_start_handler: fileDialogStart, 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. swfupload_preload_handler : preLoad, swfupload_load_failed_handler : loadFailed, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, // Button Settings button_image_url : "<?php echo base_url();?>img/upload_flash_button_61x22.png" , button_placeholder_id : "spanButtonPlaceholder" , button_width: 61, button_height: 22, // Flash Settings flash_url : "<?php echo base_url();?>swf/swfupload/swfupload.swf" , flash9_url : "<?php echo base_url();?>swf/swfupload/swfupload_fp9.swf" , custom_settings : { progress_target : "fsUploadProgress" , upload_successful : false }, // Debug settings debug: false }); }; </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php class process_form extends Controller { public function process() { ... //Here we take the file's name $file_name = $ this ->input->post( 'hidFileID' ); //Once we have the file's name, we could insert into the database //or whatever is needed ... } public function upload() { $config[ 'upload_path' ] = "path/to/the/folder/for/the/file/" ; $config[ 'allowed_types' ] = 'jpg' ; $size_mb = 20; //Max file size allowed in MB $config[ 'max_size' ] = $size_mb * 1024; // $ this ->load->library( 'upload' ); $ this ->upload->initialize($config); if (!$ this ->upload->do_upload( 'resume_file' )) { $ this ->data[ "params" ][ "error" ] = array( 'error_upload' => $ this ->upload->display_errors()); echo $ this ->upload->display_errors(); } else { $uploaded_file = $ this ->upload->data(); //Return to the form the final name of the file once it was uploaded echo $uploaded_file[ "file_name" ]; } } } |