2012-11-08 30 views
6

こんにちは私はアップロードファイルの部分についていくつかの問題を抱えています。基本的に私はロゴをアップロードするフォームを持っています。ユーザーがロゴを選択しなかった場合、ユーザーはロゴのアップロードを選択することもできますが、同時にいくつかの制限があります。今私は、彼/彼女がイメージを選択するかどうかを知るために、その部分をどのように検証できるかわかりません。これまでのCIコントローラのコードは次のとおりです。ファイルがcodeigniterでアップロード用に選択されているかどうかを確認してください

if (//CHECK IF THERE IS A FILE FOR UPLOAD){ 
       $new_name = $data['id']; 

       $config['upload_path'] = './Logos/'; 
       $config['allowed_types'] = 'jpg|png|gif'; 
       $config['max_size'] = '100'; 
       $config['max_width'] = '100'; 
       $config['max_height'] = '100'; 

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

        if (! $this->upload->do_upload()) 
        { 
         array_push($data['error_message'], "You have the following errors in your entry:\n"); 
         array_push($data['error_message'], "- Logo must be 100x100 pixels in size not exceeding 100KB with JPG,PNG or GIF format"); 
         array_push($data['error_message'], "\nLogo upload failed."); 
         $data['check_error'] = true; 
        } 
        else 
        { 
         $data = array('upload_data' => $this->upload->data()); 

         //DO UPDATE PART HERE 
         $file = $data['upload_data']['file_name']; 
         rename($config['upload_path'] . $file, $config['upload_path'] .$new_name.'.jpg'); 
         //GO TO SETTINGS 
         $this->load->helper('url'); 
         redirect($data['base'].'settings'); 
        } 
       } 

ifの部分は、検証を設定する場所です。私はいくつかのトリックを試みたが、それらのすべてが適切に動作しません。

ここでは特定のIDのロゴがすでにそれだけで彼/彼女のロゴや他のデフォルトのロゴを表示するディスプレイの存在する場合、私の見解の一部です:ファイルがある場合、私は通常、チェックするためにネイティブのPHPを取得

<tr> 
    <td><p class="titles">Logo</p></td> 
    <td> 
    <div> 
     <input type="text" id="fileName" class="file_input_textbox" readonly="readonly"> 

     <div class="file_input_div"> 
      <input type="button" value="Browse" class="file_input_button" /> 
      <input type="file" class="file_input_hidden" onchange="javascript: document.getElementById('fileName').value = this.value" id="upload" name="userfile" /> 
     </div> 
    </div> 
    </td> 
</tr> 

<tr> 
<td> 
</td> 
<td> 
<p class="titles">100px x 100px jpg, png or gif only.</p> 
</td> 
</tr> 

<tr> 
<td><p class="titles">Current Logo</p></td> 
<td> 
    <img src="<?php if(is_array(@getimagesize($base."Logos/".$id.".jpg"))){echo $base."Logos/".$id.".jpg";}else{echo $base."Logos/default.jpg";} ?>" style="margin:0px 0px 0px 90px;"/> 
</td> 
</tr> 

答えて

13

は、

if (isset($_FILES['upload_field_name']) && is_uploaded_file($_FILES['upload_field_name']['tmp_name'])) { 
    //load upload class with the config, etc... 
    $this->load->library('upload', $config); 
} 
+0

私は既にisset($ _ FILES ['upload_field_name'])を試しましたが、後では試しませんでした。これを試して、できるだけ早くあなたに戻ってきます。ありがとう! :) – KaHeL

関連する問題