2016-12-12 87 views
0

你好我正在写PHP上传多个文件,我想添加序号后缀到文件名。

$i = 0 所以我想从1加后缀的文件名(因为数组),我对循环开始不为零的上线使用$i + 1$newname = "id".$id."_".date('Y-m-d')."_".$i+1.".".$file_extension; 但它有语法错误

这里我的代码。

$count = count($_FILES["images"]["name"]); 
$arr_newname = array(); 
for($i=0; $i <= $count; $i++){ 
       if ((($_FILES["images"]["type"][$i] == "image/gif") 
      || ($_FILES["images"]["type"][$i] == "image/jpeg") 
      || ($_FILES["images"]["type"][$i] == "image/png") 
      || ($_FILES["images"]["type"][$i] == "")) 
      && ($_FILES["images"]["size"][$i] < 9000000)) //9 MB 
      { 

       $split = explode(".", $_FILES["images"]["name"][$i]); 
       $file_extension = end($split); 

       $newname = "id".$id."_".date('Y-m-d')."_".$i+1.".".$file_extension; 
       $arr_newname[$i] = $newname; 
       move_uploaded_file($_FILES["images"]["tmp_name"][$i] , "images/location/".$newname); 

       } 
       else{ 
       echo "Invalid file; 
       } 
      } 

现在,我使用的循环开始从$i=1解决问题,使用阵列上,而不是$i-1。但对我来说这是非常难看的代码。

for($i=1; $i <= $count; $i++){ 
    if ((($_FILES["images"]["type"][$i-1] == "image/gif") 
      || ($_FILES["images"]["type"][$i-1] == "image/jpeg") 
      || ($_FILES["images"]["type"][$i-1] == "image/png") 
      || ($_FILES["images"]["type"][$i-1] == "")) 
      && ($_FILES["images"]["size"][$i-1] < 9000000)) //9 MB 
      { 

       $split = explode(".", $_FILES["images"]["name"][$i-1]); 
       $file_extension = end($split); 

       $newname = "id".$id."_".date('Y-m-d')."_".$i.".".$file_extension; 
       $arr_newname[$i-1] = $newname; 
       move_uploaded_file($_FILES["images"]["tmp_name"][$i-1] , "images/location/".$newname); 

       } 
       else{ 
       echo "Invalid file; 
       } 
      } 

那么有没有其他方法可以在$ newname文件上使用$i+1?以及为什么$i-1在这些阵列上正常工作

回答

3

($i+1)伙计。

$newname = "id".$id."_".date('Y-m-d')."_".($i+1).".".$file_extension;

1

更换

$newname = "id".$id."_".date('Y-m-d')."_".$i+1.".".$file_extension; 

通过

$newname = "id".$id."_".date('Y-m-d')."_".($i+1).".".$file_extension;