Как проверить изображение перед сохранением в файл

У меня есть функция, которая сохраняет изображение в соответствующей папке.

Я хочу проверить, существует ли изображение в папке, сначала с именем, если имя совпадает, затем с SHA1 изображения

Моя текущая функция выглядит примерно так

function descargarImagen($id,$url,$pais1)
{$ruta = rutaBaseImagen($id,$_POST['pais']);

$contenido = file_get_contents($url);

$ext = explode('.', $url);
$extension = $ext[count($ext) -1];

$imagen['md5'] = md5($contenido);
$imagen['sha1'] = sha1($contenido);
$imagen['nombre'] = $imagen['md5'].'.'.$extension;

$ficherof = $pais[$pais1]['ruta_imagenes'].'/'.$ruta.'/'.$imagen['nombre'];
$ficherof = str_replace('//', '/', $ficherof);

//Here before putting the file I want to check if the image already exist in the folderfile_put_contents($ficherof, $contenido);

$s = getimagesize($ficherof);

$imagen['mime'] = $s["mime"];
$imagen['size'] = $s[0].'x'.$s[1];
$imagen['url'] = $urlbase_imagenes.'/'.$ruta.'/'.$imagen['nombre'];
$imagen['url'] = str_replace('//', '/', $imagen['url']);
$imagen['date'] = time();
$imagen['fichero'] = $ficherof;

return $imagen;
}

Я пытаюсь проверить двумя способами
1. Если имя изображения присутствует в папке или нет.
2. Если есть, то проверьте, является ли изображение тем же или другим, потому что может быть новое изображение, но с тем же именем

Любое предложение будет оценено

Заранее спасибо

0

Решение

Вы можете использовать это,

// Check if file already exists
if (file_exists($target_file)) {
//echo "Sorry, file already exists.";

/**
* validate images that are different but have same name
* we can use base64_encode function to compare the old and new image
* basics: http://php.net/manual/en/function.base64-encode.php
* online conversion help: http://freeonlinetools24.com/base64-image
*/
$base64_encoded_new_image=base64_encode(file_get_contents($name_of_your_new_image_that_you_want_to_upload));
$base64_encoded_old_image=base64_encode(file_get_contents($name_of_the_image_that_already_exists));
if ($base64_encoded_new_image!=$base64_encoded_old_image) {
/** so the images are actually not same although they have same name
* now do some other stuffs
*/
}
}

Для получения дополнительной информации, пожалуйста, посетите http://www.w3schools.com/php/php_file_upload.asp

2

Другие решения

Намек, данный этим комментарием:

//Here before putting the file I want to check if the image already exist in the folder

заставляет меня думать, что вы просите file_exists, это первое, что показывается, если вы ищете «php file Существуют» в любой поисковой системе …

2

По вопросам рекламы [email protected]