2016-07-05 6 views
0

私はPHP Codeigniterを使ってプロジェクトを進めています。私は画像をアップロードし、画像の名前を変更し、データベースに保存したい(拡張子付き)。私は次のコードを書いています。それは完全に動作しますが、問題は、イメージ名がデータベースに拡張子なしで格納されていることです。たとえば、コードを実行すると、データベースに保存されている名前は 'imagename.jpg'または 'imagename.png'ではなく 'imagename'になります。私は拡張子をつけて完全な名前を保存したい。画像の名前を変更してデータベースに保存します。コードシニター

$this->upload->do_upload('profile_pic'); 
$image_name = $this->upload->data('file_name'); 

AS

これは私のコントローラである

public function FunctionName() 
{ 
    $fname = ucwords($this->input->post('fname')); 
    $lname = ucwords($this->input->post('lname')); 
    $prof_pic = $_FILES['profile_pic']['name']; 

    $config = array ('upload_path' => './images/students/', 
     'allowed_types' => "jpeg|jpg|png", 
     'overwrite' => TRUE, 
     'file_name' => $fname."_".$lname, 
     'remove_spaces' => TRUE, 
     'file_ext_tolower' => TRUE 
    ); 

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

    $image_name = $config['file_name'].".".$config['file_type']; 

    $data = array('std_fname' => $std_fname, 
     'std_lname' => $std_lname, 
     'profile_pic' => $image 
    ); 
    $this->General_Model->create_record($data, "table_name"); 
} 
+0

のファイル拡張子を持つ新しい名前を割り当てます以下のコード

$prof_pic = $_FILES['profile_pic']['name']; $newName = "<Desired name>".".".pathinfo($prof_pic, PATHINFO_EXTENSION); $config = array ('upload_path' => './images/students/', 'allowed_types' => "jpeg|jpg|png", 'overwrite' => TRUE, 'file_name' => $newName, 'remove_spaces' => TRUE, 'file_ext_tolower' => TRUE ); 

で試してみてください'$ config'です。 – chris85

答えて

0

私はfile_type`があなたの中で定義された `表示されていないライン

$newName = "<Desired name>".".".pathinfo($prof_pic, PATHINFO_EXTENSION); 

は、実際のファイル

関連する問題