我正在使用这段代码来处理输入,以上传多个图像并调整其大小。它可以工作,但是有一件小事不想做。我要获取的扩展名没有显示在文件名中。
这是应该出现问题的代码段:
if(isset($_POST["submit"])) {
if(is_array($_FILES)) {
foreach ($_FILES['fileToUpload']['tmp_name'] as $uploadedFile) {
//$uploadedFile = $_FILES['fileToUpload']['tmp_name'];
if($uploadedFile <> ''){
$sourceProperties = getimagesize($uploadedFile);
$newFileName = time();
$dirPath = "../images/";
$ext = pathinfo($_FILES['fileToUpload']['name'], PATHINFO_EXTENSION);
$imageType = $sourceProperties[2];
switch ($imageType) {
case IMAGETYPE_PNG:
$imageSrc = imagecreatefrompng($uploadedFile);
$tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
imagepng($tmp,$dirPath. $newFileName. "_thump.". $ext);
break;
case IMAGETYPE_JPEG:
$imageSrc = imagecreatefromjpeg($uploadedFile);
$tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
imagejpeg($tmp,$dirPath. $newFileName. "_thump.". $ext);
break;
case IMAGETYPE_GIF:
$imageSrc = imagecreatefromgif($uploadedFile);
$tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
imagegif($tmp,$dirPath. $newFileName. "_thump.". $ext);
break;
default:
echo "<div class='alert alert-danger'>File is not an image.</div>";
exit;
break;
}
}
}
}
}
例如,在我的数据库中,现在保存的东西称为 1547265041_thump。。
出了什么问题?
答案 0 :(得分:1)
检查$ext
是否得到扩展。
如果没有得到,请检查$_FILES['fileToUpload']['name']
的读数。
您可以通过echo
进行调试。
检查数据库字符长度。 希望对您有所帮助。
答案 1 :(得分:0)
$_FILES['fileToUpload']['name']
似乎是一个数组,这很合逻辑,因为您可以一次上传多个图像。要遍历,我在foreach中添加了一个计数器以输出扩展。现在效果很好!