Hi,
I am new to this forum, building a inhous app with Grocery Crud 1.5.4 and Codeigniter 3.0.6. I have a partner management within my app where i should upload an image, but it always results in an Box saying "Upload Error" only and {success:false} in firebug console. Have to say, that checking file type works, also checking writeable of upload path works. if i deny access, the right error is coming up.
I see jquery-1.11.2.min.js line 4 in firebug console, reply {success:false}
The post has the data of the image attached. In background under the "Upload Error Box" I see "File uploading" "Progress 100%" ( I see it in german so translation may vary :-) )
Is there any way to debug this? Running FreeBSD 10/64Bit with Apache 2.4 and PHP 5.6.19 on https:// only. But opening http has the same result.
The code (all included callbacks works without a problem) needed some extra alpha checks because php doesnt check ÖÄÜöäüß - german umlauts and numeric here has a decimal , instead of the . .
logo field is varchar(255)
looking for hours, found no way to debug this right........ thank you!
############
public function mgmt_partner()
{
$group = array('admin', 'partnerview');
if (!$this->ion_auth->logged_in() || !$this->ion_auth->in_group($group))
{
// redirect them to the login page
redirect('ctserp/login', 'refresh');
}
$crud = new Cts01_Grocery_CRUD(); // yes there is a numeric addition in it, works fine
$crud->set_table('ctserp_partner');
$crud->set_relation('country_code','ctserp_countries','country_name');
$crud->columns('firma', 'city', 'country_code', 'email', 'telefon', 'uidchecked');
$crud->unset_add_fields('created', 'REpersonId','uidchecked', 'uidcheckresponse','logo'); // REpersonid can only be available on edit if persons exists
$crud->unset_edit_fields('created');
$state = $crud->getState();
if($state == 'read' || $state == 'edit')
{
$akt_key = $crud->getStateInfo()->primary_key;
$crud->set_relation('REpersonId','ctserp_personen', '{nachname} {vorname}, {email}',
'personenId IN (select personenId from ctserp_personen where firmenId =' . $akt_key . ' and gesperrt ="0")');
}
if($state == 'edit')
{
$crud->field_type('uidchecked', 'readonly');
$crud->field_type('uidcheckresponse', 'readonly');
}
$crud->set_subject(lang('mgmt_partner'));
$crud->add_action(lang('mgmt_personen'), '', '', 'fa fa-male', array($this,'mgmt_partner_personen_sub')); // create link with sub of below
$group = array('admin', 'partneredit');
if ($this->ion_auth->logged_in() && $this->ion_auth->in_group($group))
{
$crud->add_action(lang('mgmt_uidcheck'), '', '', 'fa fa-check', array($this,'mgmt_partner_uidcheck_sub'));
}
$crud->field_type('updated', 'hidden', date("Y-m-d H:i:s") );
$crud->display_as('firma', lang('firma'));
$crud->display_as('firma2', lang('firma2'));
$crud->display_as('addressLine1', lang('addressLine1'));
$crud->display_as('addressLine2', lang('addressLine2'));
$crud->display_as('postalCode', lang('postalCode'));
$crud->display_as('city', lang('city'));
$crud->display_as('state', lang('state'));
$crud->display_as('country_code', lang('country_name')); // we show header for name which is relation!
$crud->display_as('telefon', lang('telefon'));
$crud->display_as('mobiltelefon', lang('mobiltelefon'));
$crud->display_as('email', lang('email'));
$crud->display_as('emailnewsletter', lang('emailnewsletter'));
$crud->display_as('homepage', lang('homepage'));
$crud->display_as('kunde', lang('kunde'));
$crud->display_as('REpersonId', lang('REpersonId'));
$crud->display_as('deb_time_rate', lang('deb_time_rate2'));
$crud->display_as('lieferant', lang('lieferant'));
$crud->display_as('cred_payout_default', lang('cred_payout_default'));
$crud->display_as('partner', lang('partner'));
$crud->display_as('uidnummer', lang('uidnummer'));
$crud->display_as('uidchecked', lang('uidchecked'));
$crud->display_as('uidcheckresponse', lang('uidcheckresponse'));
$crud->display_as('firmenbuch', lang('firmenbuch'));
$crud->display_as('bankname', lang('bankname'));
$crud->display_as('bankbic', lang('bankbic'));
$crud->display_as('bankiban', lang('bankiban'));
$crud->display_as('paypal', lang('paypal'));
$crud->display_as('bitcoins', lang('bitcoins'));
$crud->display_as('notiz', lang('notiz'));
$crud->display_as('logo', lang('logo'));
$crud->display_as('created', lang('created'));
$crud->display_as('updated', lang('updated'));
$crud->required_fields('firma', 'country_code', 'email');
$crud->set_rules('firma', lang('firma'), 'required|callback_alnumspaces|min_length[2]|max_length[50]');
$crud->set_rules('firma2', lang('firma2'), 'callback_alnumspaces|min_length[2]|max_length[50]');
$crud->set_rules('addressLine1', lang('addressLine1'), 'required|min_length[5]|max_length[50]');
$crud->set_rules('addressLine2', lang('addressLine2'), 'max_length[50]');
$crud->set_rules('postalCode', lang('postalCode'), 'required|callback_alnumspaces|min_length[3]|max_length[8]');
$crud->set_rules('city', lang('city'), 'required|callback_alnumspaces|min_length[3]|max_length[50]');
$crud->set_rules('state', lang('state'), 'callback_alnumspaces|min_length[3]|max_length[50]');
$crud->set_rules('telefon', lang('telefon'), 'callback_alnumspaces|min_length[3]|max_length[50]');
$crud->set_rules('mobiltelefon', lang('mobiltelefon'), 'callback_alnumspaces|min_length[3]|max_length[50]');
$crud->set_rules('email', lang('email'), 'required|valid_email|min_length[3]|max_length[50]');
$crud->set_rules('homepage', lang('homepage'), 'valid_url|min_length[3]|max_length[50]');
$crud->set_rules('deb_time_rate', lang('deb_time_rate'), 'callback_numericdecimalornone');
$crud->set_rules('uidnummer', lang('uidnummer'), 'callback_alnum|min_length[8]|max_length[25]');
$crud->set_rules('bankname', lang('bankname'), 'callback_alnumspaces|min_length[3]|max_length[50]');
$crud->set_rules('bankbic', lang('bankbic'), 'callback_alnumspaces|min_length[3]|max_length[11]');
$crud->set_rules('bankiban', lang('bankiban'), 'callback_alnumspaces|min_length[3]|max_length[34]');
$crud->set_rules('paypal', lang('paypal'), 'valid_email|min_length[3]|max_length[50]');
$crud->set_rules('bitcoins', lang('bitcoins'), 'callback_alnum|min_length[3]|max_length[255]');
$crud->set_rules('notiz', lang('notiz'), 'callback_alnumspaces|min_length[3]|max_length[100]');
$crud->setNumericFields($this->config->item('decimal_point'), 'deb_time_rate'); // multi fields sep with , '' , ''.....
// LOGO UPLOAD only on edit because no partner ID for FILESTORE PATH on add:
$group = array('admin', 'partneredit');
if ($this->ion_auth->logged_in() && $this->ion_auth->in_group($group))
{
if($state == 'edit')
$this->config->set_item('grocery_crud_file_upload_allow_file_types','gif|jpeg|jpg|png');
$fpath = $this->_get_filestore_path('FILESTORE', 'LO'.$this->grocery_crud->getStateInfo()->primary_key);
$crud->set_field_upload('logo', $fpath); // we store in FILESTORE/L/O/IDchar2/IDchar2/......
}
}
// callbacks:
// set http:// if they forget it
$crud->callback_before_insert(function($post_array){
if ($post_array['homepage'] && !preg_match('/^http/i',$post_array['homepage']))
{
$post_array['homepage'] = "http://" . $post_array['homepage'];
}
return $post_array;
});
$crud->callback_before_update(function($post_array){
if ($post_array['homepage'] && !preg_match('/^http/i',$post_array['homepage']))
{
$post_array['homepage'] = "http://" . $post_array['homepage'];
$post_array['updated'] = date("Y-m-d H:i:s");
}
return $post_array;
});
// if view only unset operations:
$group = array('admin', 'partneredit');
if (!$this->ion_auth->logged_in() || !$this->ion_auth->in_group($group))
{
$crud->unset_add();
$crud->unset_edit();
$crud->unset_delete();
}
// show page
$output = $crud->render();
$this->_main_output($output);
}
// this gets our upload path
// no base means default FILESTORE. if base send full URL.
public function _get_filestore_path($base='', $ref)
{
if (! $base) {
$base=FCPATH."FILESTORE"; // PAthes are defined in index.php of codeigniter
// http://stackoverflow.com/questions/13992074/codeigniter-path-functions-definitions
}
$ref=substr($ref, 0, 5); // trim ref to max 8 chars
$folder="";
for ($n=0;$n<strlen($ref);$n++)
{
$folder.=substr($ref,$n,1);
$folder.="/";
if ((!(file_exists($base . "/" . $folder)))) {mkdir($base . "/" . $folder,0777);chmod($base . "/" . $folder,0777);}
}
return $base . "/" . $folder;
}