PHP文件上载中未显示图像扩展名
我使用这段代码来处理上传多个图像的输入,并调整它们的大小。它是有效的,但有一件小事不想做它的工作。我试图获取的扩展名没有显示在文件名中 下面是一段代码,问题应该是:PHP文件上载中未显示图像扩展名,php,image,file,upload,Php,Image,File,Upload,我使用这段代码来处理上传多个图像的输入,并调整它们的大小。它是有效的,但有一件小事不想做它的工作。我试图获取的扩展名没有显示在文件名中 下面是一段代码,问题应该是: if(isset($_POST["submit"])) { if(is_array($_FILES)) { foreach ($_FILES['fileToUpload']['tmp_name'] as $uploadedFile) { //$uploadedFile = $_FI
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;
}
}
}
}
}
if(设置($\u POST[“提交”])){
如果(是_数组($_文件)){
foreach($_FILES['fileToUpload']['tmp_name']作为$uploadedFile){
//$uploadedFile=$_文件['fileToUpload']['tmp_名称'];
如果($uploadedFile“”){
$sourceProperties=getimagesize($uploadedFile);
$newFileName=time();
$dirPath=“../images/”;
$ext=pathinfo($_文件['fileToUpload']['name'],路径信息扩展名);
$imageType=$sourceProperties[2];
开关($imageType){
案例IMAGETYPE_PNG:
$imageSrc=imagecreatefrompng($uploadedFile);
$tmp=imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
imagepng($tmp,$dirPath.$newFileName.\u-thump.$ext);
打破
case IMAGETYPE_JPEG:
$imageSrc=imagecreatefromjpeg($uploadedFile);
$tmp=imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
imagejpeg($tmp,$dirPath.$newFileName.\u-thump.$ext);
打破
案例图像类型\u GIF:
$imageSrc=imagecreatefromgif($uploadedFile);
$tmp=imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
imagegif($tmp,$dirPath.$newFileName.\u-thump.$ext);
打破
违约:
echo“文件不是图像。”;
出口
打破
}
}
}
}
}
例如,它现在保存的内容在我的数据库中被称为1547265041_-thump.
出什么问题了?检查
$ext
是否获得扩展名。
如果它没有得到检查$\u文件['fileToUpload']['name']
是否正在读取。
您可以通过echo
进行调试
检查数据库字符长度。
希望有帮助。这些
$\u文件['fileToUpload']['name']
似乎是一个数组,这是合乎逻辑的,因为您可以一次上载多个图像。为了循环,我向foreach添加了一个计数器以输出扩展。现在它工作得很好 谢谢你的回答。我已经检查过了,$ext是空的。我应该在问题中已经说过了。您是否检查了$\u文件['fileToUpload']['name']
是否正确?我尝试了“print\r”,因为它似乎是一个数组。上传图片时的输出是数组([0]=>example.jpeg)@damnguyNow我知道这是一个数组,我认为它不工作是合乎逻辑的。我做了一个计数器来找出数组ext,这很有效。谢谢