首页 > 解决方案 > 警告:file_exists() 期望参数 1 是有效路径,数组在 C:\

问题描述

由于某种奇怪的原因,我收到了这个警告......这是完整的警告:

Warning: file_exists() expects parameter 1 to be a valid path, array given in C:\wamp64\www\Petrogas NCR applicatie\Insert.php on line 84

这是我的代码:

for($i = 0; $i < count($_FILES['attachments']['name']); $i++)
    {
        function resize_image($file,$max_resolution) {
            if (file_exists($file)) {

                $original_image = imagecreatefromjpeg($file);

                $original_width = imagesx($original_image);
                $original_height = imagesy($original_image);

                $ratio = $max_resolution / $original_width;
                $new_width = $max_resolution;
                $new_height = $original_height * $ratio;

                if ($new_height > $max_resolution) {
                    $ratio = $max_resolution / $original_height;
                    $new_height = $max_resolution;
                    $new_width = $original_width * $ratio;
                }

                if ($original_image) {
                    $new_image = imagecreatetruecolor($new_width, $new_height);
                    imagecopyresampled($new_image,$original_image,0,0,0,0,$new_width,$new_height,$original_width,$original_height);
                    imagejpeg($new_image,$file,90);
                }
            }
        }
        $filetmp = $_FILES["attachments"]["tmp_name"][$i];
        $filename = $_FILES["attachments"]["name"][$i];
        $filepath = "images/".$filename;
        if (move_uploaded_file($filetmp,$filepath)) {
            $file = $_FILES['attachments']['name'];
            resize_image($file, '50');
            $querypictureupload = "INSERT INTO file_upload(ncrnummer,filename) VALUES ('$ncrnummer','$filename')";
            $result = mysqli_query($conn, $querypictureupload);
        }
    }

我试图上传一张图片并调整它的大小。但是收到了这个奇怪的警告...

标签: phphtml

解决方案


更改脚本,因为您不应该在 for 循环中创建函数

for($i = 0; $i < count($_FILES['attachments']['name']); $i++)
{        
    $filetmp = $_FILES["attachments"]["tmp_name"][$i];
    $filename = $_FILES["attachments"]["name"][$i];
    $filepath = "images/".$filename;
    if (move_uploaded_file($filetmp,$filepath)) {
        $file = $_FILES['attachments']['name'];
        resize_image($file, '50', $filepath);
        $querypictureupload = "INSERT INTO file_upload(ncrnummer,filename) VALUES ('$ncrnummer','$filename')";
        $result = mysqli_query($conn, $querypictureupload);
    }
}

在 for 循环函数范围之外创建函数

并且您需要在file_exists函数中传递文件路径以检查文件是否存在

 function resize_image($file,$max_resolution, $filepath) {
        if (file_exists($filepath)) {

            $original_image = imagecreatefromjpeg($file);

            $original_width = imagesx($original_image);
            $original_height = imagesy($original_image);

            $ratio = $max_resolution / $original_width;
            $new_width = $max_resolution;
            $new_height = $original_height * $ratio;

            if ($new_height > $max_resolution) {
                $ratio = $max_resolution / $original_height;
                $new_height = $max_resolution;
                $new_width = $original_width * $ratio;
            }

            if ($original_image) {
                $new_image = imagecreatetruecolor($new_width, $new_height);
                imagecopyresampled($new_image,$original_image,0,0,0,0,$new_width,$new_height,$original_width,$original_height);
                imagejpeg($new_image,$file,90);
            }
        }
    }

推荐阅读