2014-09-19 42 views
0

唯一的first name:CodeIgniter的文件上传类 - 一块笨位指示的地方IM上传的文件 - 对所有文件

 $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文件到这一点的作品,但保存与另一个名字是问题。 Fore expample我发送file1.png和file2.jpg 而我没有gettin 5_123123123.png和5_864192696219.jpg和多数民众赞成的问题。 林gettin 2文件命名相同(只有上载类添加“1”之前),但最大的问题是,他们也有相同的格式。 (在这个例子中为.png)我的问题是我如何在这里获得唯一的名称?为什么它的所有文件都是同名的?

+1

把''rand'放在循环里面,它的唯一设置一次 – Ghost 2014-09-19 07:32:13

回答

0

$rand = md5(uniqid(rand(), true));在我们共同的循环

+0

不错,但是这还是没有格式的帮助... – 2014-09-19 13:23:26

+0

但是还是好评。 – 2014-09-19 13:24:39

1

发生此问题,因为传递$配置作为参数,你可以重新初始化使用

$这个 - > upload->新配置的缓存configuration.Instead的初始化($配置); 希望能解决这个问题