【问题标题】:How to get value form array in PHP如何在 PHP 中获取值形式的数组
【发布时间】:2017-01-16 09:36:57
【问题描述】:

我想在 Codeigniter 中上传多张图片,并将上传的图片文件名插入到名为 gallery 的数据库表中。

多张图片上传成功,但我无法获取上传图片的文件名。下面是我的功能

public function products() { 
    $this->load->library('upload');
    $uploadData = array();
    //$fileData = array();
    $files = $_FILES;
    $count = count($_FILES['userfile']['name']);

    for($i=0; $i<$count; $i++) {
        $_FILES['userfile']['name']= $files['userfile']['name'][$i];
        $_FILES['userfile']['type']= $files['userfile']['type'][$i];
        $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i];
        $_FILES['userfile']['error']= $files['userfile']['error'][$i];
        $_FILES['userfile']['size']= $files['userfile']['size'][$i];  

        $imagePath = realpath(APPPATH . '../images/website/gallery');           
        $config['upload_path'] = $imagePath;
        $config['allowed_types'] = 'gif|jpg|png';
        $config['file_name'] = date('Ymd_his_').rand(10,99).rand(10,99).rand(10,99);
        $this->upload->initialize($config);

        if($this->upload->do_upload()) {
            $fileData = $this->upload->data();
            echo "<pre>"; var_dump($fileData); echo "</pre>";
            //inset code will be here               
        } else {
            echo strip_tags($this->upload->display_errors());
        }
    }
}
echo "<pre>"; var_dump($fileData); echo "</pre>"; result is below 

array(14) {
  ["file_name"]=>
  string(26) "20170116_101759_563596.jpg"
  ["file_type"]=>
  string(10) "image/jpeg"
  ["file_path"]=>
  string(43) "H:/Xampp/htdocs/cms/images/website/gallery/"
  ["full_path"]=>
  string(69) "H:/Xampp/htdocs/cms/images/website/gallery/20170116_101759_563596.jpg"
  ["raw_name"]=>
  string(22) "20170116_101759_563596"
  ["orig_name"]=>
  string(26) "20170116_101759_563596.jpg"
  ["client_name"]=>
  string(10) "vision.jpg"
  ["file_ext"]=>
  string(4) ".jpg"
  ["file_size"]=>
  float(28.32)
  ["is_image"]=>
  bool(true)
  ["image_width"]=>
  int(383)
  ["image_height"]=>
  int(291)
  ["image_type"]=>
  string(4) "jpeg"
  ["image_size_str"]=>
  string(24) "width="383" height="291""
}
array(14) {
  ["file_name"]=>
  string(26) "20170116_101759_165983.jpg"
  ["file_type"]=>
  string(10) "image/jpeg"
  ["file_path"]=>
  string(43) "H:/Xampp/htdocs/cms/images/website/gallery/"
  ["full_path"]=>
  string(69) "H:/Xampp/htdocs/cms/images/website/gallery/20170116_101759_165983.jpg"
  ["raw_name"]=>
  string(22) "20170116_101759_165983"
  ["orig_name"]=>
  string(26) "20170116_101759_165983.jpg"
  ["client_name"]=>
  string(22) "Vision-and-Mission.jpg"
  ["file_ext"]=>
  string(4) ".jpg"
  ["file_size"]=>
  float(1950.72)
  ["is_image"]=>
  bool(true)
  ["image_width"]=>
  int(2121)
  ["image_height"]=>
  int(1414)
  ["image_type"]=>
  string(4) "jpeg"
  ["image_size_str"]=>
  string(26) "width="2121" height="1414""
}

我想捕获 ["file_name"]=> 值并动态插入数据库。每个图像文件将被插入其中。如果上传了五个或更多图像,则该数字图像文件名将插入 db。下面是我的示例表。

**id | file_name** 
1  | 20170116_101759_165983.jpg
2  | 20170116_101759_165984.jpg
3  | 20170116_101759_165985.jpg

我尝试了很多教程,但都失败了。

谢谢

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    简单地从 $fileData 数组中获取上传的文件名

        if($this->upload->do_upload()){
                    $fileData = $this->upload->data();
    
                 $filename = $fileData['file_name'];
      ///insert this $filename value in db
    
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 2016-08-20
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多