2012-11-08 22 views
6

Xin chào, tôi đang gặp một số sự cố về phần tệp tải lên. Về cơ bản, tôi có một biểu mẫu tải lên phần logo trong đó nếu người dùng không chọn biểu tượng anh ấy/cô ấy vẫn có thể cập nhật tiểu sử của mình cùng một lúc thì người dùng cũng có thể chọn tải lên biểu tượng nhưng có một số hạn chế. Bây giờ tôi không biết làm thế nào tôi có thể xác nhận rằng một phần để biết nếu anh ta/cô ấy chọn một hình ảnh hay không. Đây là mã của tôi cho đến nay trong bộ điều khiển CI:Xác thực nếu một tệp được chọn để tải lên trong mã vạch

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'); 
        } 
       } 

Phần nếu tôi muốn đặt xác thực. Tôi đã thử một số thủ thuật nhưng tất cả những thứ đó không hoạt động đúng.

Dưới đây là một phần quan điểm của tôi mà nếu logo của ID nhất định đã tồn tại nó chỉ hiển thị/biểu tượng của mình hoặc nếu không hiển thị biểu tượng mặc định:

<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> 

Trả lời

13

Tôi thường nhận được PHP mẹ đẻ để kiểm tra xem các tập tin là được tải lên trước khi bắt đầu lớp học của CI để thực hiện công việc:

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

Tôi đã thử phương pháp ($ _ FILES ['upload_field_name']) nhưng không phải sau này. sẽ cố gắng này và lấy lại cho bạn càng sớm càng tốt. Cảm ơn! :) – KaHeL

Các vấn đề liên quan