2012-01-16 4 views
1

Google에서 이것을 찾고 stackoverflow에서 다른 답변을 보았습니다. 그리고 거기에 probaly 그들에 좋은 답변이 있지만 여전히 내 자신의 코드에 그것을 함축 수있는 방법을 얻을하지 않습니다.Codeigniter 업로드 옵션

나는 이미지를 업로드하기 위해 내 자신의 공개 기능을 가지고 있지만, 이제는 선택 사항이되고 싶습니다. 이 순간 누군가가 유효성 검사를 통과하기 위해 파일을 업로드해야합니다.이 옵션을 어떻게 만들 수 있습니까?

내 기능 : 다른 사람들을 위해 사전

--edit--

에서

public function _do_upload_image() 
{ 
    $config['upload_path'] = './company_images/'; 
    $config['allowed_types'] = 'jpg|jpeg|png'; 

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

    if (!$this->upload->do_upload()) 
    { 
     $this->form_validation->set_message('_do_upload_image', $this->upload->display_errors()); 
    } 
    else 
    { 
     $this->_upload_data = $this->upload->data(); 
    } 

} 

덕분에, 대답은 일을하고 어떤 이미지가 없을 때 나는 다른 이름을 내 FILE_NAME을 준 업로드되었습니다. 그것은 다음과 같습니다 : 다음은

public function _do_upload_image() 
{ 
    $config['upload_path'] = './company_images/'; 
    $config['allowed_types'] = 'jpg|jpeg|png'; 
    $returnArr = array(); 

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

    if (!$this->upload->do_upload()) 
    { 
     $returnArr = array('file_name' => 'leeg.jpg'); 
    } 
    else 
    { 
     $returnArr = $this->upload->data(); 
    } 

    $this->_upload_data = $returnArr; 
} 

답변

1

당신이 당신의 업로드 기능은 선택해야 의미하는 경우 수행 할 수 있습니다

 

public function _do_upload_image() 
{ 
    $config['upload_path'] = './company_images/'; 
    $config['allowed_types'] = 'jpg|jpeg|png'; 
    $returnArr = array(); 

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

    if ($this->upload->do_upload()) 
    { 
     $returnArr = $this->upload->data(); 
    } 
    return $returnArr; //just return the array, empty if no upload, file data if uploaded 
} 
 

희망 의미

+0

작동하지만 이미지가 업로드되지 않으면 [file_name] 값을 제공 할 수있는 방법이 있습니다. : leeg.jpg? – Augus

+0

Uhm nvm, 내가 원하는 모든 기능으로 문제가 해결되었습니다. 아픈 내 게시물을 업데이 트하십시오! – Augus

0

CodeIgniter의 파일을 선택적으로 업로드 만드는 ... 완벽한 작품 ..... :

---------- 컨트롤러 ---------

function file() 
{ 
$this->load->view('includes/template', $data); 
} 

function valid_file() 
{ 
$this->form_validation->set_rules('userfile', 'File', 'trim|xss_clean'); 

if ($this->form_validation->run()==FALSE) 
{ 
    $this->file(); 
} 
else 
{ 
    $config['upload_path'] = './documents/'; 
    $config['allowed_types'] = 'gif|jpg|png|docx|doc|txt|rtf'; 
    $config['max_size']  = '1000'; 
    $config['max_width']  = '1024'; 
    $config['max_height'] = '768'; 

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

    if (!$this->upload->do_upload('userfile',FALSE)) 
    { 
    $this->form_validation->set_message('checkdoc', $data['error'] = $this->upload->display_errors()); 

    if($_FILES['userfile']['error'] != 4) 
    { 
     return false; 
    } 

    } 
    else 
    { 
    return true; 
    } 
} 

난 그냥 $_FILES['userfile']['error'] != 4를 사용하여 당신이 유는 unneccessory 할 수있는이 선택적으로 만드는 라인,

if($_FILES['userfile']['error'] != 4) 
{ 
return false; 
} 

$_FILES['userfile']['error'] != 4 is for file required to upload. 

를 사용, 그것은 필요한 파일이 오류를 통과하고 다른 종류의 좋은 작품 오류가있는 경우 false를 반환하면, 이 효과가 있기를 바랍니다.

관련 문제