如何在上传时为多图像创建会话?

时间:2014-09-23 11:48:20

标签: php image-uploading

我有:

if(isset($_FILES['files'])){
$errors= array();




$im = 1;
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];
    $_SESSION['cropped_image'][$im] = $newimage_name.$file_name;
    $im++; 
    if(empty($errors)==true){
        if(move_uploaded_file($file_tmp,$newimage_name.$file_name)){


            echo $imageLocation1 = $_SESSION["cropped_image"][0];
            echo "<br />";
            echo $imageLocation2 = $_SESSION['cropped_image'][1];


        }
    }

}

}

它非常适合上传imgae并创建会话,但是当我回显会话时,在这种情况下会话1打印2次:

$_SESSION["cropped_image"][0];

但     echo $ imageLocation1 = $ _SESSION [&#34; cropped_image&#34;] [1];

打印1次,这很好。

例如:

1411476445S_l_xHltn94G5k_bTV5__9lESGQD53012.jpg 1411476445S_l_xHltn94G5k_bTV5__9lESGQD53012.jpg 1411476445S_l_xHltn94G5k_bTV5__9lESGQD53113.jpg

请帮帮我。 谢谢。

2 个答案:

答案 0 :(得分:0)

$ _ SESSION [&#39; cropped_image&#39;]从索引1开始,所以回显$ _SESSION [&#39; cropped_image&#39;] [0]什么都不做我认为你只需要改变它:

echo $imageLocation1 = $_SESSION["cropped_image"][0];
echo "<br />";
echo $imageLocation2 = $_SESSION['cropped_image'][1];

对此:

echo $_SESSION["cropped_image"][$im];
echo "<br />";

答案 1 :(得分:0)

我尝试在文件末尾打印主题后取消设置Image的会话,如:

        unset($_SESSION['cropped_image'][0]);
        unset($_SESSION['cropped_image'][1]);
        unset($_SESSION['cropped_image'][2]);

它正在发挥作用。

为什么呢?因为如果我没有取消设置图像会话,它将保留在内存中并在新的上传文件中打印。