Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP文件上载中未显示图像扩展名_Php_Image_File_Upload - Fatal编程技术网

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,这很有效。谢谢