2016-02-12 70 views
1

我的表單中有兩個文件上傳控件,一個用於上傳一個css文件,另一個用於html文件。 我的css文件名是style.css,html文件名是test.html。同一形式的兩個文件上傳控件在codeigniter上傳時同名

兩個文件都成功上傳,但上傳時都採用相同的名稱。上傳時css文件名是style.css,html文件名也是style.css。

CSS文件上傳代碼:

 if(isset($_FILES['css_file']) AND $_FILES['css_file']['name'] != '') { 
         $xyz['upload_path'] = 'theme/'.$folder_name;  
         $xyz['allowed_types'] = 'css'; 
         $xyz['overwrite'] = FALSE; 
         $xyz['file_name'] = $_FILES['css_file']['name']; 

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

         if (!$this->upload->do_upload('css_file')) { 
          echo $this->upload->display_errors(); 
         }else{ 
          $abc_array['file'] = $this->upload->data(); 

          $array_rc['css_file'] = $abc_array['file']['file_name']; 

         } 
     } 

HTML文件上傳代碼:

if(isset($_FILES['html_file']) AND $_FILES['html_file']['name'] != '') { 
         $abc['upload_path'] = 'theme/'.$folder_name; 
         $abc['allowed_types'] = 'html'; 
         $abc['overwrite'] = FALSE; 
         $abc['file_name'] = $_FILES['html_file']['name']; 

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

         if (!$this->upload->do_upload('html_file')) { 
          echo $this->upload->display_errors(); 
         }else{ 

          $xyz_array['file'] = $this->upload->data(); 

          $array_rc['html_file'] = $xyz_array['file']['file_name']; 

         } 
     } 

因此,如何能在我上傳的時間重命名HTML文件?

+0

我的猜測是,在上傳您使用相同的腳本,CSS和HTML文件,在調用move_uploaded_file之前,您正在將這些文件重命名爲硬編碼的字符串。 – Tahir

+0

我正在使用兩個不同的腳本來上傳一個CSS和HTML文件。 –

+0

如果您可以顯示您的代碼,請顯示您的上傳代碼...來自控制器 –

回答

1

看看這可以幫助你

$this->load->library("upload"); 
if(isset($_FILES['css_file']) AND $_FILES['css_file']['name'] != '') 
{ 
    $xyz['upload_path']  = 'theme/'.$folder_name;  
    $xyz['allowed_types'] = 'css'; 
    $xyz['overwrite']  = FALSE; 
    $xyz['file_name']  = $_FILES['css_file']['name']; 
    $this->upload->initialize($xyz); 
    if (!$this->upload->do_upload('css_file')) 
    { 
     echo $this->upload->display_errors(); 
    } 
    else 
    { 
     print_r($this->upload->data()); 
    } 
} 

if(isset($_FILES['html_file']) AND $_FILES['html_file']['name'] != '') 
{ 
    $abc['upload_path']  = 'theme/'.$folder_name; 
    $abc['allowed_types'] = 'html'; 
    $abc['overwrite']  = FALSE; 
    $abc['file_name']  = $_FILES['html_file']['name']; 
    $this->upload->initialize($abc); 
    if (!$this->upload->do_upload('html_file')) 
    { 
     echo $this->upload->display_errors(); 
    } 
    else 
    { 
     print_r($this->upload->data()); 
    } 
} 
+0

感謝它工作! –

0

本地

$config['encrypt_name'] = TRUE; 

OR

$name = $_FILES["userfiles"]['name']; 
$config['file_name'] = $name; 
+0

它採用加密名稱,但擴展名相同。 –