수색…


비고

(컨트롤러, 파일, 클래스, ID) 또는 그 이름이 무엇이든간에 동일한 이름을 사용해야 할 필요는 없습니다. 내가 사용한 것은 코딩의 흐름과 내 가정의 이해를위한 것입니다. 코드를 가져 와서 원하는대로 코드 / 이름을 편집 한 다음 코드를 호스팅하고 성공하는 것은 개발자의 몫입니다.

단일 파일 / 이미지 업 로더

이제는 CI 방식으로 제안 된 양식을 사용하여 이미지 / 파일 업로드 코드가 원시 CI 방법으로 어떻게 작동하는지 살펴 보겠습니다.

PHP의 파일 업로드에는 두 가지 시나리오가 있습니다. 아래에 언급되어 있습니다.

  • 단일 이미지 / 파일 업 로더 - 이것은 양식 속성의 일반 변수를 사용하여 저장할 수 있습니다. (예) <input type="file" name="image" />
  • 다중 이미지 / 파일 업 로더 - 이것은 파일 유형의 이름에 대한 배열 변수의 도움으로 만 저장할 수 있습니다. (예) <input type="file" name="image[]" /> .

배열 변수 즉 name="profile[]"multi-image 업 로더 뿐만 아니라 single image 업 로더에도 보관할 수 있습니다.

따라서 Native CodeIgnitor 형식의 단일 이미지 / 파일 업 로더 코드는 다음과 같습니다.

부분보기 :

<?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();
?>

그러므로 우리가 양식을 제출하면

  • Employee - addemployee 라는 함수에 대한 컨트롤러 및 검색
  • 파일 업 로더 코드에 required 속성이 required 경우 input 태그에 required 라는 HTML5 속성을 추가 할 수 있습니다.

다음은 필수 속성을 사용하는 방법의 두 가지 예이지만 두 방법 모두 동일합니다.

  1. 방법 1 : <input type="file" name="photo" required="required" />
  2. 방법 2 : <input type="file" name="photo" required />

따라서 이미지 / 파일 업 로더의보기 부분에서 따라야 할 중요한 팁 중 일부입니다.

컨트롤러 파트 :

<?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            
        }    
    }
?>

주 : 기본적으로 업로드 루틴은 파일이 userfile 양식 필드에서 나올 것으로 예상하며 formmultipart 유형이어야합니다.

  • 따라서 그것은로 이동합니다 employee_model$data_value - 배열과는 호출 한 함수에서 데이터 저장됩니다 saveemployee .
  • 자신의 필드 이름을 설정하려면 do_upload() 메소드에 값을 전달하기 만하면됩니다.
  • File Uploading 클래스를 사용하여 파일을 업로드 할 수 있으며 업로드 할 파일의 유형과 크기를 제한 할 수 있습니다.
  • display_errors() - do_upload() 메서드가 false를 반환하면 오류 메시지를 검색합니다. 이 메서드는 자동으로 에코하지 않지만 필요한 경우 데이터를 반환 할 수 있도록 데이터를 반환합니다.

표기법 :

이들은 CI에서 사용할 수있는 표기법이며 index.php 에서이를 Short Definition으로 정의 할 수 있으며 전체 프로젝트에서 사용할 수 있습니다.

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

모델 파트 :

public function saveemployee($data_value)
{
    $this->db->insert('employee',$data_value);
}
  • 업로드 된이 L 지 이름으로 데이터를 employee 테이블에 저장합니다.
  • 업로드 된 이미지는 루트 폴더 또는 지정한 다른 폴더에서 만든 디렉토리에 저장됩니다.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow