codeigniter
Bild / filuppladdare i CodeIgniter
Sök…
Anmärkningar
Det är inte nödvändigt att du måste använda samma namn för (Controller, File, Class, ID) eller vad det än kan vara. Allt jag har använt är för att förstå syftet med kodningsflödet och mina antaganden. Det är upp till utvecklaren som tar koden och redigerar koden / namnet enligt deras önskan och sedan värdar koden och lyckas.
Enstaka fil / bilduppladdare
Vi ska nu se hur bild- / filöverföringskoden fungerar i den ursprungliga CI-metoden med hjälp av de formulär som har föreslagits av CI-sättet.
Uppladdning av filer i PHP har två scenarier. Det nämns nedan enligt följande.
- Uppladdare för enda bild / fil - Detta kan sparas med hjälp av den normala variabeln i formattributet. (T.ex.)
<input type="file" name="image" />
- Multi-image / File Uploader - Detta kan bara sparas med hjälp av matrisvariabeln för namnet i filtypen. (T.ex.)
<input type="file" name="image[]" />
.
Arrayvariabeln name="profile[]"
kan också hållas för den single image
bilduppladdaren såväl som för multi-image
bilduppladdaren .
Därför är kod för enstaka bild / filuppladdare i formatet Native CodeIgnitor följande:
Visa del:
<?php
echo form_open_multipart('employee/addemployee', array('name' => 'addemployee', 'class'=>'form-horizontal'));
?>
<div class="form-group">
<label class="control-label col-sm-4" for="pwd">Profile:</label>
<div class="col-sm-8">
<input type="file" class="" id="profile" name="userimage">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-primary pull-right" name="save" value="Save Employee" />
</div>
</div>
<?php
echo form_close();
?>
Därför om vi skickar in formuläret kommer det att gå till
-
Employee
- Controller och sök efter den funktion som heteraddemployee
- Om du behöver det nödvändiga attributet för filuppladdningskoden kan du lägga till HTML5-attributet som
required
för input-taggen.
Nedan visas de två exemplen på hur man använder det önskade attributet men båda metoderna är desamma också.
- Metod en:
<input type="file" name="photo" required="required" />
- Metod två:
<input type="file" name="photo" required />
Därför är detta några av de viktiga tips som ska följas i visningsdelen av bild / filuppladdaren.
Styrenhetsdel:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Employee extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('employee_model');
$this->load->helper('url'); //This will load up all the URL parameters from the helper class
$this->load->helper('form'); //This will load up all the form attributes that are need by the form.
}
public function addemployee()
{
if($_FILES["userimage"]['name']=='')
{
// Here you can directly redirect to the form page itself with the Error Message
}
else
{
$new_name = time().$_FILES["userimage"]['name']; //This line will be generating random name for images that are uploaded
$config['upload_path'] = FCPATH ."assets/fileupload/";
$config['allowed_types'] = 'gif|jpg|png';
$config['file_name'] = $new_name;
$this->load->library('upload', $config); //Loads the Uploader Library
$this->upload->initialize($config);
if ( ! $this->upload->do_upload('userimage')) {}
else
{
$data = $this->upload->data(); //This will upload the `image/file` using native image upload
}
$data_value = array(
'profile'=>$new_name,
); //Passing data to model as the array() parameter
$this->employee_model->saveemployee($data_value); //save_employee is the function name in the Model
}
}
?>
Obs: Som standard förväntar uppladdningsrutinen att filen kommer från ett formulärfält som heter userfile
, och form
måste vara av typen multipart
.
- Därför kommer den att gå till
employee_model
med$data_value
- array och den kommer att spara data under den funktion som kallassaveemployee
. - Om du vill ställa in ditt eget fältnamn skickar du bara dess värde till
do_upload()
- Med hjälp av klassen Filöverföring kan vi ladda upp filer och vi kan också begränsa typen och storleken på den fil som ska laddas upp.
-
display_errors()
- Hämtar alla felmeddelanden omdo_upload()
returnerade falsk. Metoden ekar inte automatiskt, den returnerar uppgifterna så att du kan tilldela den du behöver
beteckningar:
Det här är notationerna som finns i CI och vi kan definiera det i index.php
som en kort definition och vi kan använda det i hela projektet.
EXT: The PHP file extension
FCPATH: Path to the front controller (this file) (root of CI)
SELF: The name of THIS file (index.php)
BASEPATH: Path to the system folder
APPPATH: The path to the "application" folder
Modelldel:
public function saveemployee($data_value)
{
$this->db->insert('employee',$data_value);
}
- Det kommer att spara data på
employee
med det uppladdade bildnamnet. - Och den bild som laddas upp sparas i den katalog som vi har skapat i rotmappen eller någon annan mapp som vi anger.