Php imagecreatefromjpeg生成相同的文件(多个图像)

Php imagecreatefromjpeg生成相同的文件(多个图像),php,jquery,ajax,Php,Jquery,Ajax,我试图将一个formData对象从jquery(ajax)发送到php。formData包含图像文件。我需要他们被上传和调整大小(这两个都用来工作)。现在的问题是,当我在php中创建一个imagecreatefromjpeg对象时,他似乎只获取第一张图像,并将其用于formdata中的图像量 foreach($_FILES as $file) { $ImageName = $file['name']; $ImageSize = $file['size'];

我试图将一个formData对象从jquery(ajax)发送到php。formData包含图像文件。我需要他们被上传和调整大小(这两个都用来工作)。现在的问题是,当我在php中创建一个
imagecreatefromjpeg
对象时,他似乎只获取第一张图像,并将其用于formdata中的图像量

foreach($_FILES as $file)
{
    $ImageName      = $file['name'];
    $ImageSize      = $file['size'];
    $TempSrc        = $file['tmp_name'];
    $ImageType      = $file['type'];

    $DestinationDirectory .= $CategoryName . "/";

    if (is_array($ImageName)) 
    {
        $c = count($ImageName);

        for ($i=0; $i < $c; $i++)
        {
            $processImage           = true; 
            $RandomNumber           = rand(0, 9999999999);  // We need same random name for both files.

            if(!isset($ImageName[$i]) || !is_uploaded_file($TempSrc[$i]))
            {
                echo '<div class="error">Error occurred while trying to process <strong>'.$ImageName[$i].'</strong>, may be file too big!</div>'; //output error
            }
            else
            {
                //Validate file + create image from uploaded file.
                switch(strtolower($ImageType[$i]))
                {
                    case 'image/png':
                        $CreatedImage = imagecreatefrompng($TempSrc[$i]);
                        break;
                    case 'image/gif':
                        $CreatedImage = imagecreatefromgif($TempSrc[$i]);
                        break;
                    case 'image/jpeg':
                    case 'image/pjpeg':
                        $CreatedImage = imagecreatefromjpeg($TempSrc[$i]);
                        break;
                    default:
                        $processImage = false; //image format is not supported!
                }           //get Image Size
                    /*
                    $outputArr[] = array('image' => $ImageName[$i]);
                    header('Content-Type: application/json');
                    echo json_encode($outputArr);
                    */

                    echo $ImageName[$i];
            }
        }
    }
}
foreach($\u文件为$file)
{
$ImageName=$file['name'];
$ImageSize=$file['size'];
$TempSrc=$file['tmp_name'];
$ImageType=$file['type'];
$DestinationDirectory.=$CategoryName.“/”;
if(是_数组($ImageName))
{
$c=计数($ImageName);
对于($i=0;$i<$c;$i++)
{
$processImage=true;
$RandomNumber=rand(099999999);//我们需要两个文件的随机名称相同。
如果(!isset($ImageName[$i])| |!是否上载了文件($TempSrc[$i]))
{
echo“尝试处理时出错。$ImageName[$i].,可能是文件太大!”;//输出错误
}
其他的
{
//验证文件+从上载的文件创建图像。
开关(strtolower($ImageType[$i]))
{
案例“image/png”:
$CreatedImage=imagecreatefrompng($TempSrc[$i]);
打破
案例“image/gif”:
$CreatedImage=imagecreatefromgif($TempSrc[$i]);
打破
案例“图像/jpeg”:
案例“image/pjpeg”:
$CreatedImage=imagecreatefromjpeg($TempSrc[$i]);
打破
违约:
$processImage=false;//不支持图像格式!
}//获取图像大小
/*
$outputArr[]=array('image'=>$ImageName[$i]);
标题('Content-Type:application/json');
echo json_编码($outputArr);
*/
echo$ImageName[$i];
}
}
}
}

因此,这会对相同的图像进行
$i
次的回波。移除开关盒后,它会回显正确的图像…

您有一个双格语句case'image/jpeg':case'image/pjpeg':这似乎不是问题所在。即使没有开关盒,也只有这一行:$CreatedImage=imagecreatefromjpeg($TempSrc[$i]);这也是双打。无论如何,谢谢你。