【问题标题】:CodeIgniter Upload Class - unique name for all filesCodeIgniter 上传类 - 所有文件的唯一名称
【发布时间】:2014-09-19 07:30:51
【问题描述】:

第一个 - 我上传文件的代码点火器控制器:

        $files = $_FILES;
        $order_number = 5 //example
        $cpt = count($_FILES['userfile']['name']);

        $rand = md5(uniqid(rand(), true));

        for($i=0;$i<$cpt;$i++)
        {
            if(!empty($files['userfile']['name'][$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];    

                $format=explode('.',$files['userfile']['name'][$i]);
                $format=end($format);

                $config_img['upload_path'] = './uploads/orders';
                $config_img['allowed_types'] = 'jpg|png';
                $config_img['file_name'] = $order_number.'_'.$rand.'.'.$format;
                $config_img['max_size'] = '5120';
(...)//some code that is not a problem
$this->load->library('upload', $config_img);
if($this->upload->do_upload())
(...)

好的。到目前为止,Gettin 文件可以工作,但用另一个名称保存它是个问题。 例如,我发送 file1.png 和 file2.jpg 而且我没有得到 5_123123123.png 和 5_864192696219.jpg 这就是问题所在。 我得到了 2 个名称相同的文件(仅在上传类之前添加“1”),但最大的问题是它们也具有相同的格式。 (本例中为 .png)我的问题是如何在这里获得唯一名称?为什么所有文件都同名?

【问题讨论】:

  • $rand放在循环里面,它只设置一次

标签: php codeigniter upload continuous-integration


【解决方案1】:

这个问题是由于缓存配置而发生的。您可以使用重新初始化新配置,而不是将 $config 作为参数传递

$this->上传->初始化($config); 希望这能解决问题

【讨论】:

    【解决方案2】:

    $rand = md5(uniqid(rand(), true)); 放入你的 for 循环中

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2013-01-29
      相关资源
      最近更新 更多