使用序列号上传多个图像

时间:2016-01-15 15:23:52

标签: php ajax

我正在使用此代码上传多张图片。

我想如果我一次上传多张图片,那么它会发送1,2,3,4,5,如果我第二次上传6,7,8,9等等。

我不希望序列顺序自动递增,因为我需要根据需要进行更改。

    <?php
if(isset($_FILES['files']))
{
$errors= array();$s=$i++;
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name )
    {
        $file_name = $key.$_FILES['files']['name'][$key];
        $file_size =$_FILES['files']['size'][$key];
        $file_tmp =$_FILES['files']['tmp_name'][$key];
        $file_type=$_FILES['files']['type'][$key];  
        if($file_size > 2097152)
        {
            $errors[]='File size must be less than 2 MB';
        }
        $desired_dir="user_data";
        if(empty($errors)==true)
        {
            if(is_dir($desired_dir)==false)
            {
                // Create directory if it does not exist
                mkdir("$desired_dir", 0700);        
            }
            if(is_dir("$desired_dir/".$file_name)==false)
            {
                move_uploaded_file($file_tmp,"user_data/".$file_name);
            }
            else
            {   
                 //rename the file if another one exist
                 $new_dir="user_data/".$file_name.time();
                 rename($file_tmp,$new_dir) ;               
            }
            //mysql_query($query);          
        }
        else
        {
                print_r($errors);
        }
       // echo $file_name = $file_name.",";
        $query="INSERT into upload_data (FILE_NAME,FILE_SIZE,FILE_TYPE,serial) VALUES('$file_name','$file_size','$file_type','$s'); ";
        mysql_query($query);
    }
    if(empty($error))
    {
        echo "Success";
    }       
}
?>

1 个答案:

答案 0 :(得分:0)

您至少有3个选项:

  • 使用javascript保存序列。
  • 使用$ _SESSION保存序列。
  • 使用您的数据库保存序列。

例如,我们使用$ _SESSION容器:

isset($_SESSION['img_count']) ? : $_SESSION['img_count']=0; //set the image counter for each session
move_uploaded_file($file_tmp,"user_data/".$file_name) ? $_SESSION['img_count'] ++ : ''; //update the counter ONLY when the file has been copied to your hard drive.
$query="INSERT into upload_data (FILE_NAME,FILE_SIZE,FILE_TYPE,serial) VALUES('$file_name','$file_size','$file_type','$_SESSION[img_count]')"; // insert it on the database.

您当然可以将相同的原则应用于javascript,以便每个用户的计算机处理这些数字,然后您只需要将它们包含在您正在使用的表单中。