как установить изображение по умолчанию none.png, если входной файл пустой php - PullRequest
0 голосов
/ 21 октября 2018

Я пытался применить none.PNG, если входной файл пуст, и я использую такое утверждение.Мне нужно исправить это, чтобы использовать его в моих системах.благодарю вас.

if(empty($image)){
 $name = md5(time() . rand(0, 999)) . '.jpeg';
}else{
 $name = 'none.jpeg';
}

public function saveimage()
{
    if (isset($_POST['image_loc'])) {
        $image = $_FILES['image_loc'];
        $allowed = array('image/jpeg', 'image/jpg', 'image/png');
         // print_r($image);
         // die();

         // check for erros
        if ($image['error'] != 0) {
            die('File upload error: ' . $image['error']);
        }

         // check if is image
        if (in_array($image['type'], $allowed)) {

            $name = md5(time() . rand(0, 999)) . '.jpeg';
            move_uploaded_file($image['tmp_name'], ROOT . '/public/img/pics/' . $name);


            echo $image['tmp_name'];
            $this->insert($name);

        }
    }
}

После редактирования кода Результат отображается только при загрузке файла.Мне не нужно ничего. PNG, чтобы показать, если не загрузить файл.как я могу это сделать.

public function saveimage()
{
    if (isset($_POST['image_loc'])) {
        $image = $_FILES['image_loc'];


        $allowed = array('image/jpeg', 'image/jpg', 'image/png');
             // print_r($image);
             // die();


             // check if is image
        if (in_array($image['type'], $allowed)) {


            ////////////////////////// here ///////////////////////
            if (empty($image)) {
                $name = md5(time() . rand(0, 999)) . '.jpeg';
            } else {
                $name = 'none.jpeg';
            }
            ////////////////////////// here ///////////////////////

            move_uploaded_file($image['tmp_name'], ROOT . '/public/img/pics/' . $name);

            echo $image['tmp_name'];
            $this->insert($name);

        }
    }
}

1 Ответ

0 голосов
/ 21 октября 2018

Если $_POST["image_loc"] - это удаленный URL, вы можете использовать функцию ниже, которая возвращает размер файла.Так что можете проверить, возвращает ли он 0 или нет.Если $_POST["image_loc"] не является удаленным URL и это путь к изображению на вашем сервере, вы можете просто использовать функцию filesize($image_path) для получения размера изображения.

function get_image_size($image_url){
 $ch = curl_init($image_url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt($ch, CURLOPT_HEADER, TRUE);
 curl_setopt($ch, CURLOPT_NOBODY, TRUE);
 $data = curl_exec($ch);
 $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
 curl_close($ch);
 return $size;
}
...