2016-10-13 125 views
0

我需要只存儲文件的文件名+擴展名時上傳和重命名完成我的databse.my問題是無法獲得擴展名。PHP:如何獲取Codeigniter中上傳文件的文件名和擴展名?

$new_file_name=date("mdY")."_".time(); 
    $config['upload_path']   = './assets/images/'; 
    $config['allowed_types']  = 'gif|jpg|png'; 
    $config['max_size']    = 2048; 
    $config['max_width']   = 1024; 
    $config['max_height']   = 768; 
    $config['file_name']   = $new_file_name; 

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

    if (! $this->upload->do_upload('uploadFile')) 
    { 
      $error = array('error' => $this->upload->display_errors()); 

      var_dump($error); 
    } 
    else 
    { 
      $data = array('upload_data' => $this->upload->data()); 
      var_dump($data); 
      echo $config['file_name'] . $config['file_ext']; 

    } 

我的下一個問題加載助手的形式爲?或需要加載表單來使用庫form_validation?

$this->load->helper(array('form')); for ? 

$this->load->library('form_validation'); this for validation rule 
+1

的可能的複製(http://stackoverflow.com【如何提取的PHP文件擴展名?]/questions/173868/how-to-extract-a-file-extension-in-php) –

+0

請參閱本用戶指南:https://codeigniter.com/user_guide/libraries/file_uploading.html#preferences並應用此答案。 :http://stackoverflow.com/a/5257466/4952944 – Bhavin

+0

您應該看到您從$ this-> upload-> data()創建的var_dump($ data)中的所有File屬性。所以你只需要抓住你想要的東西。 – TimBrownlaw

回答

-3

您可以使用此代碼

$file_name = $data['file_name']; 
echo $file_name; 

和擴展文件

$ext = implode('.',$file_name); 
echo $ext[1]; 
+0

它爆炸不會崩潰 – saikiran

+0

並且如果文件名具有「。」(點),它將不起作用。例如:abc.xyz.jpg –

0

獲取文件名,你上傳的文件後,你可以得到它的屬性:

$saved_file_name = $this->upload->data('file_name'); 
// will give you the filename along with the extension 

如果你想獲得f上傳前ILE擴展,使用PHP核心:

$file_ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION); 

或使其乾淨

$filename= $_FILES["file"]["name"]; 
$file_ext = pathinfo($filename,PATHINFO_EXTENSION); 
相關問題