2016-10-13 128 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); 
相关问题