Php imagecreatefromjpeg生成相同的文件(多个图像)
我试图将一个formData对象从jquery(ajax)发送到php。formData包含图像文件。我需要他们被上传和调整大小(这两个都用来工作)。现在的问题是,当我在php中创建一个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'];
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]);这也是双打。无论如何,谢谢你。