Bild-Upload mit codeigniter Datei-Upload-Klasse
Dies ist nicht eine wie auf Bild hochladen Frage . Ich habe fast erfolgreich geschafft, fügen Sie ein Bild-upload-Funktion in das add-client-Funktion . Es funktioniert gut, wenn ich versuche zum hochladen eine gültige Datei .. aber wenn ich wählen Sie eine ungültige Datei oder größere Datei, dann zeigt er undefined variable upload_data
und codeigniter Datenbank-Fehler an, wenn img_path
ist NULL
es sagt Column 'img_path' cannot be null
. warum diese Funktion nicht funktioniert $this->upload->display_errors();
. Der Fehler bei der Validierung zeigen, sind schön, aber keine Datei-Fehler bei der überprüfung angezeigt.
Ich bin mit Codeigniter und hmvc
hier ist mein controller
<?php
class Clients extends MX_Controller{
function __construct(){
parent::__construct();
$this->load->model('mdl_clients');
}
function add(){
$data['success'] = null;
$data['errors']= null;
if($_POST){
$config_arr = array(
'upload_path' => './uploads/',
'allowed_types' => 'gif|jpg|png',
'max_size' => '2048',
'max_width' => '1024',
'max_height' => '768',
'encrypt_name' => true,
);
$this->load->library('upload', $config_arr);
if (!$this->upload->do_upload()) {
$data['errors'] = $this->upload->display_errors(); //this isn't working
} else {
$upload_data = $this->upload->data();
}
$config=array(
array(
'field'=>'firstName',
'label'=>'First Name',
'rules'=>'required|max_length[15]|min_length[3]'
),
array(
'field'=>'city',
'label'=>'City',
'rules'=>'required'
),
array(
'field'=>'mobile_phone',
'label'=>'Mobile Number',
'rules'=>'required'
),
array(
'field'=>'email',
'label'=>'Email',
'rules'=>'required|is_unique[clients.email]|valid_email'
),
);
$this->load->library('form_validation');
$this->form_validation->set_rules($config);
if($this->form_validation->run() == FALSE){
$data['errors'] = validation_errors();
}else{
$data=array(
'img_path'=>$upload_data['file_name'],
'firstName'=>$_POST['firstName'],
'email'=>$_POST['email'],
'city'=>$_POST['city'],
'mobile_phone'=>$_POST['mobile_phone'],
);
$this->mdl_clients->add($data);
$data['success'] = 1;
$data['errors']= 0;
}
}
$data['title'] = 'Add Client Database';
$data['main_content'] = 'clients/add';
echo Modules::run('templates/admin', $data);
}
und meine Datei anzeigen .. add.php
<? if($success==1) {?>
<div class="alert alert-success">
<a class="close" data-dismiss="alert" href="#">×</a>
Data Has been Updated !
</div>
<? } ?>
<?php if($errors) { ?>
<div class="alert alert-error" >
<a class="close" data-dismiss="alert" href="#">×</a>
<?=$errors?>
</div>
<? } ?>
<?php $attributes = array('class' => 'form-horizontal');
echo form_open_multipart('clients/add', $attributes); ?>
<fieldset>
<!-- Address form -->
<h2>Client Information</h2>
<hr />
All Fields Marked with <span style="color: red;">*</span> is necessary .
<hr />
<!-- Upload input-->
<div class="control-group">
<label class="control-label">Upload<span style="color: red;">*</span></label>
<div class="controls">
<input name="userfile" name="userfile" type="file"
class="input-xlarge">
<p class="help-block"></p>
</div>
</div>
<!-- firstName input-->
<div class="control-group">
<label class="control-label">First Name<span style="color: red;">*</span></label>
<div class="controls">
<input id="firstName" name="firstName" type="text" placeholder="First Name"
class="input-xlarge" required>
<p class="help-block"></p>
</div>
</div>
<!-- Email input-->
<div class="control-group">
<label class="control-label">E-Mail<span style="color: red;">*</span></label>
<div class="controls">
<input id="email" name="email" type="text" placeholder="A Valid Email Address"
class="input-xlarge" required>
<p class="help-block"></p>
</div>
</div>
<!-- City input-->
<div class="control-group">
<label class="control-label">City<span style="color: red;">*</span></label>
<div class="controls">
<input id="city" name="city" type="text" placeholder="City Name"
class="input-xlarge" required>
<p class="help-block"></p>
</div>
<!-- Mobile input-->
<div class="control-group">
<label class="control-label">Mobile Number<span style="color: red;">*</span></label>
<div class="controls">
<input id="mobile_phone" name="mobile_phone" type="text" placeholder="Current Mobile Phone Number"
class="input-xlarge" required>
<p class="help-block"></p>
</div>
</div>
<!-- Button -->
<div class="control-group">
<div class="controls">
<button class="btn btn-success">Add to Database</button>
</div>
</div>
</fieldset>
</form>
InformationsquelleAutor shahriar31 | 2013-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausgehend von einem input-element:
Ändern Sie die folgende Zeile:
:
Bitte lassen Sie mich wissen, wenn Sie irgendwelche Schwierigkeiten stoßen.
UPDATE
Wenn Sie möchten, senden Sie es, um die Vorlage dann etwas wie das hier tun:
Lassen Sie mich wissen, wenn dieses für Sie arbeitet.
überprüfen Sie bitte meine aktualisierte Antwort
gecheckt ..aber funktioniert nicht ... ich check die ganze Logik wieder mal sehen, wenn jeder Logik schief geht .. 🙁
InformationsquelleAutor ABorty
Während Sie die Formular-Validierung, die Sie nicht berücksichtigt, wenn es upload-Fehler oder nicht. Sie sollten überprüfen, ob es upload-Fehler oder nicht, als gehen Sie mit dem Formular-Validierung
$upload_data = $this->upload->data();
und klebte es nach$this->mdl_clients->add($data);
. funktioniert gutFroh zu wissen, dass Ihr problem gelöst ist
InformationsquelleAutor Khawer Zeshan