2013-03-15 3 views
3

파일을 업로드 할 수 없습니다. $this->upload->do_upload('anonsphoto');false을 반환합니다. 이유를 찾을 수 없습니다. 여기codeigniter 파일 업로드 실패

$autoload['libraries'] = array('upload'); 내이다 :

나는 자동로드에이 방법을 업로드 라이브러리를 추가

다음
<?php 
echo form_open_multipart('InterviewController/saveInterview'); 

$anons_data = array(
    'name'  => 'anons', 
    'id'   => 'anons_area', 
    'value'  => 'Введите анонс' 
); 
echo form_textarea($anons_data); ?> 

<p>Картинка анонса</p> 
<?php 
echo form_upload('anonsphoto'); ?> 

업로드 컨트롤러는 파일 :

public function saveInterview() { 
    $config['upload_path'] = '/application/upload/'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '10000'; 
    $config['file_name'] = 'img_' . (string) time(); 
    $this->upload->initialize($config); 

    $this->upload->do_upload('anonsphoto'); 
    return; 
} 

업로드 파일이 3킬로바이트 크기입니다 png 파일. do_upload가 false를 반환하는 이유를 이해할 수 없습니다. 어떤 아이디어?

+1

codeigniter는 php.ini에 설정된 업로드 제한을 무시할 수 없습니다. upload_max_size 값이 무엇인지 확인하십시오. –

+1

'$ this-> upload-> display_errors();'를 시도하십시오. –

답변

3

파일 업로드 클래스는 필요한 것을 모두 말합니다.

https://www.codeigniter.com/userguide3/libraries/file_uploading.html는 열쇠입니다 "."

$config['upload_path'] = './uploads/'; 
$config['allowed_types'] = 'gif|jpg|png'; 
$config['max_size'] = '100'; 
$config['max_width'] = '1024'; 
$config['max_height'] = '768'; 

$this->load->library('upload', $config); 

// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class: 
$this->upload->initialize($config); 

(점)은 현재 업로드 경로의 디렉토리를 의미합니다. 따라서 (점)으로 시작하지 않은 루트 경로에 있기 때문에 앱이 작동하지 않습니다.

폴더이 0755

에 전체 권한 (chmod를) 함께해야

$config['upload_path'] = './uploads/'; 

의미 : 현재 디렉토리 및 업로드 디렉토리

거나 :

$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/application/upload/'; 

은 전체 문서 URI 경로이고 '/application/upload/'은 C 고 말했다.

(점)을 잊지 마세요. $_SERVER['DOCUMENT_ROOT']'/application/upload' 사이

최대 크기는 킬로바이트 값에 있어야이 어떻게 작동하는지 이해하는 데 도움이 $config['max_size'] = '10000';

희망.

+0

'applicastion/upload'경로를 사용하여 문제가 해결되었습니다./앞뒤에 점이 없습니다. 무슨 뜻이에요? –

+0

'.' dot은 현재 디렉토리에 있는지 확인합니다. 리눅스에서 주로 사용되거나 FTP 용으로 사용됩니다. '/'를 쓰면 파일 시스템의 루트로 이동한다는 의미이기도합니다. '. /'를 붙이면 현재 디렉토리로 이동한다. 희망이 도움이됩니다. –

+0

고마워, 마린. –

0

업로드 경로가 잘못되었다고 생각합니다. 사용해보십시오

$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/application/upload/'; 

디렉토리가 쓰기 가능한지 확인하십시오.