Thursday, April 25, 2013

SWF File uploader issue fixation in codeigniter - SWF DEBUG: Event: uploadError : IO Error : File ID: SWFUpload_0_0. IO Error: Error #2038

Codeigniter - SWF file uploader issue fixation.

I was spent too much time on fixing a issue of SWF uploader and simply fixed it after a long time.

I was getting the error like

SWF DEBUG: Event: uploadError : IO Error : File ID: SWFUpload_0_0. IO Error: Error #2038

And I fixed it by just changing

upload_url: "http://abc.com/order/uploadFiles",

TO

upload_url : "http://abc.com/index.php/order/uploadFiles",

now the whole function will be:


$(function(){
$('#swfupload-control').swfupload({
upload_url: "http://abc.com/index.php/order/uploadFiles",
file_post_name: 'uploadfile',
file_size_limit : "1024",
file_types : "*.csv",
file_types_description : "Image files",
file_upload_limit : 1,
flash_url : "<?=base_url()?>assets/swfupload/swfupload.swf",
button_image_url : '<?=base_url()?>assets/swfupload/XPButtonUploadText_61x22.png',
button_width : 114,
button_height : 20,
button_placeholder : $('#button')[0],
debug: true
})
.bind('fileQueued', function(event, file){
var listitem='<li id="'+file.id+'" >'+
'File: <em>'+file.name+'</em> ('+Math.round(file.size/1024)+' KB) <span class="progressvalue" ></span>'+
'<div class="progressbar" ><div class="progress" ></div></div>'+
'<p class="status" >Pending</p>'+
'<span class="cancel" >&nbsp;</span>'+
'</li>';
$('#log').append(listitem);
$('li#'+file.id+' .cancel').bind('click', function(){
var swfu = $.swfupload.getInstance('#swfupload-control');
swfu.cancelUpload(file.id);
$('li#'+file.id).slideUp('fast');
});
// start the upload since it's queued
$(this).swfupload('startUpload');
})
.bind('fileQueueError', function(event, file, errorCode, message){
alert('Size of the file '+file.name+' is greater than limit');
})
.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
$('#queuestatus').text('Files Selected: '+numFilesSelected+' / Queued Files: '+numFilesQueued);
})
.bind('uploadStart', function(event, file){
$('#log li#'+file.id).find('p.status').text('Uploading...');
$('#log li#'+file.id).find('span.progressvalue').text('0%');
$('#log li#'+file.id).find('span.cancel').hide();
})
.bind('uploadProgress', function(event, file, bytesLoaded){
//Show Progress

var percentage=Math.round((bytesLoaded/file.size)*100);
$('#log li#'+file.id).find('div.progress').css('width', percentage+'%');
$('#log li#'+file.id).find('span.progressvalue').text(percentage+'%');
})
.bind('uploadSuccess', function(event, file, serverData){
var item=$('#log li#'+file.id);
item.find('div.progress').css('width', '100%');
item.find('span.progressvalue').text('100%');
var pathtofile='<a href="uploads/'+file.name+'" target="_blank" >view &raquo;</a>';
item.addClass('success').find('p.status').html('Done!!! | '+pathtofile);
})
.bind('uploadComplete', function(event, file){
// upload has completed, try the next one in the queue
$(this).swfupload('startUpload');
})

});


Friday, April 19, 2013

working with json in codeigniter



  <?php
$attributes = array("id"=>"register_form");
echo form_open('register',$attributes); ?>
<div id="w4l-reg-name" class="control-group">
<div class="controls">
<input type="text" placeholder="Full Name" name="name">
<span class="help-inline"></span>
</div>
</div>

<div id="w4l-reg-number" class="control-group">
<div class="controls">
<input type="text" placeholder="Favorite Number" name="number">
<span class="help-inline" ></span>
</div>
</div>

<div id="w4l-reg-email" class="control-group">
<div class="controls">
<input type="text" placeholder="Email Address" name="email">
<span class="help-inline"></span>
</div>
</div>

<div id="w4l-reg-email2" class="control-group">
<div class="controls">
<input type="text" placeholder="Confirm Email Address" name="email2">
<span class="help-inline"></span>
</div>
</div>

<div id="w4l-reg-password" class="control-group">
<div class="controls">
<input type="password" placeholder="Password" name="password">
<span class="help-inline"></span>
</div>
</div>
<div id="w4l-reg-password2" class="control-group">
<div class="controls">
<input type="password" placeholder="Confirm Password" name="password2">
<span class="help-inline"></span>
</div>
</div>
       
      </div>
      <div class="modal-footer">
        <button type="button" onclick="memberRegister();" class="btn btn-danger">Sign Up</button>
        </form>
---------------------------------------------------------------------------------------------------------



function memberRegister(){
$.post(BASE_PATH+"register/index",$("#register_form").serialize(), function (data){
$('#w4l-reg-name').removeClass('error');
$('#w4l-reg-name span').html('');
$('#w4l-reg-number').removeClass('error');
$('#w4l-reg-number span').html('');
$('#w4l-reg-email').removeClass('error');
$('#w4l-reg-email span').html('');
$('#w4l-reg-email2').removeClass('error');
$('#w4l-reg-email2 span').html('');
$('#w4l-reg-password').removeClass('error');
$('#w4l-reg-password span').html('');
$('#w4l-reg-password2').removeClass('error');
$('#w4l-reg-password2 span').html('');


var resp = null;
try {
resp = $.parseJSON(data);
} catch (e){
alert('Communication error. Please try again later' );
return;
}
if(typeof(resp.errors) != 'undefined') {
for(var i in resp.errors) {
if(resp.errors[i] != '') {
$('#'+i).addClass('error');
$('#'+i+' span').html(resp.errors[i]);
}
}
} else {
alert(resp.msg);
location.href=BASE_PATH;
}
});
}
-------------------------------------------------------------------------------------------------



      function index()
    {
        $this->form_validation->set_rules('name', 'Full Name', 'trim|required|xss_clean');
        $this->form_validation->set_rules('email', 'Email Address', 'trim|xss_clean|required|valid_email|matches[email2]|callback_emailCheck');
        $this->form_validation->set_rules('email2', 'Confirm Email Address', 'trim|xss_clean|required|valid_email');
        $this->form_validation->set_rules('number', 'Favorite Number', 'trim|required|xss_clean|is_natural|less_than[100]');
        $this->form_validation->set_rules('password', 'Password', 'trim|xss_clean|required|matches[password2]');
        $this->form_validation->set_rules('password2', 'Confirm Password', 'trim|xss_clean|required');
        if ($this->form_validation->run() == FALSE)
        {
$err = array();
$err['w4l-reg-name'] =  form_error('name');
$err['w4l-reg-email'] =  form_error('email');
$err['w4l-reg-email2'] =  form_error('email2');
$err['w4l-reg-number'] =  form_error('number');
$err['w4l-reg-password'] =  form_error('password');
$err['w4l-reg-password2'] =  form_error('password2');

echo json_encode(array('errors' => $err));
        }
        else
        {
            $this->user_model->add_user();
$success = array("msg"=>"You have successfully added a new user!");
echo json_encode($success);
        }
    }

For removing index.php from the codeigniter urls

For removing index.php from the codeigniter urls:

Create a .htaccess file with the following contents:


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

Put it outside the application folder.