codeigniter
CodeIgniter의 이미지 / 파일 업 로더
수색…
비고
(컨트롤러, 파일, 클래스, 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 :
<input type="file" name="photo" required="required" />
- 방법 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
양식 필드에서 나올 것으로 예상하며 form
은 multipart
유형이어야합니다.
- 따라서 그것은로 이동합니다
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