2013-03-16 168 views
1

例如,如果我上传文件foo.png如何获得上传控制器中的字符串“foo.png”?如何从Codeigniter上传控制器获取图像名称?

控制器代码:

<?php 

class Upload extends CI_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper(array('form', 'url')); 
     $this->load->database(); 
    } 

    function do_upload($folder) 
    { 
     $config['upload_path'] = './userdata/'. $folder . '/'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '100'; 
     $config['max_width'] = '1024'; 
     $config['max_height'] = '768'; 

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

     if (! $this->upload->do_upload()) 
     { 
      $error = array('error' => $this->upload->display_errors()); 
      echo $this->upload->display_errors(); 
     } 
     else 
     { 
      $data = array('upload_data' => $this->upload->data()); 
      echo "<p>File sucesfully uploaded</p>"; 

      $filename = // How do I get the filename here 

     } 
    } 
} 
?> 

如何设置$filename到上传文件的文件名?

回答

1
echo $data['raw_name'].$data['file_ext']; 

应该做的伎俩

例如你上传图片

if($this->upload->do_upload('upload_data')) { 
$data = $this->upload->data(); 
echo $data['raw_name'].$data['file_ext']; 
} 
4

official CI manual

$this->upload->data() 
This is a helper function that returns an array containing all of the data related to the file you uploaded. Here is the array prototype: 
Array 
(
    [file_name] => mypic.jpg 
    [file_type] => image/jpeg 
    [file_path] => /path/to/your/upload/ 
    [full_path] => /path/to/your/upload/jpg.jpg 
    [raw_name]  => mypic 
    [orig_name] => mypic.jpg 
    [client_name] => mypic.jpg 
    [file_ext]  => .jpg 
    [file_size] => 22.2 
    [is_image]  => 1 
    [image_width] => 800 
    [image_height] => 600 
    [image_type] => jpeg 
    [image_size_str] => width="800" height="200" 
) 
你的情况

所以$data变量保存$this->upload->data()函数的结果应该包含您需要了解你有该文件的所有信息上传。

而具体而言,$data['upload_data']['file_name']是你在找什么。

2

试试这个吧!

$data = $this->upload->data(); 
echo $data['file_name'];