2017-04-10 12 views
0

フォームの一部としてアップロードされたファイルのファイル名を読み取ろうとしています。テストするために使用しているprint_rコマンドは空白の画面しか表示しません。私はこれに関連するマニュアル(底辺の近くhere)を読んで、私が間違っていることを理解していない。Codeigniterはアップロードされたファイルのファイル名を読み取ることができません

コントローラー:

public function do_upload() { 
    $config['upload_path'] = './uploads/'; 
    $config['allowed_types'] = 'gif|jpg|png|txt|pdf|xlsx|csv|xls|bmp'; 
    $config['max_size']  = 1000; 

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

    print_r($file_name); 

ビュー:

<?php echo form_open_multipart('Corpmuns/do_upload', array('method' => 'post'));?> 

... // some drop-down menus and text fields here 

<INPUT TYPE="file" NAME="userfile" id="userfile" > 

</form> 
+0

こんにちは、私はあなたのコントローラを私の答えで修正しました。それを確認してください。 – Gaurav

答えて

1

ファイルがまだアップロードされていなかったので、あなたは、アップロード操作をしませんでした。そのため、アップロードしたファイルの名前を取得できません。それは存在しないからです。 コード$this->upload->do_upload('userfile')をダウンロードし、ファイル名を取得する前にファイルが正常にアップロードされていることを確認してください。

+0

ありがとうございました。どうすれば名前を変更できますか?私が['file_name']を新しい名前で設定しようとすると、$ file_name = $ this-> upload-> data( 'orig_name');私に新しい名前が表示されます。元の名前を付けて名前を変更したい – David

+0

@David '$ this-> upload-> data( 'client_name')' – aszx0413

-1
<form action="" enctype="multipart/form-data" method="post" 
name="uploadfile"> 

アップロードライブラリから

+1

'form_open_multipart()'は、 'enctype =" multipart/form-data "でフォームタグを作成します。 – JapanGuy

0

コールdo_upload機能のenctype = "multipart/form-data" を追加する必要があります。

更新コントローラー:

public function do_upload() { 
    $config['upload_path'] = './uploads/'; 
    $config['allowed_types'] = 'gif|jpg|png|txt|pdf|xlsx|csv|xls|bmp'; 
    $config['max_size']  = 1000; 

    $this->load->library('upload', $config); 
    if ($this->upload->do_upload('userfile')) { //use this function 

     $data['error'] = false; 
     $upload_data = $this->upload->data(); 
     $data['data'] = $upload_data; 
     $data['msg'] = 'Image Successfully Uploaded.'; 

    } else { 

     $data['msg'] = $this->upload->display_errors('', '<br>'); 

    } 

    print_r($data) 
} 
0
 if (! $this->upload->do_upload('input_name')) 
     { 
      echo $this->upload->display_errors(); 
     } 
     else 
     { 

      $file=$this->upload->data(); 

      echo $image=$file['file_name'];//Set file name to varilable 


     } 
    } 
関連する問題