Comment puis-je vérifier la hauteur et la largeur avant de télécharger l'image, en utilisant PHP.
Dois-je d'abord télécharger l'image et utiliser "getimagesize ()"? Ou puis-je vérifier cela avant de le télécharger en utilisant PHP?
<?php
foreach ($_FILES["files"]["error"] as $key => $error) {
if(
$error == UPLOAD_ERR_OK
&& $_FILES["files"]["size"][$key] < 500000
&& $_FILES["files"]["type"][$key] == "image/gif"
|| $_FILES["files"]["type"][$key] == "image/png"
|| $_FILES["files"]["type"][$key] == "image/jpeg"
|| $_FILES["files"]["type"][$key] == "image/pjpeg"
){
$filename = $_FILES["files"]["name"][$key];
if(HOW TO CHECK WIDTH AND HEIGHT)
{
echo '<p>image dimenssions must be less than 1000px width and 1000px height';
}
}
?>
Vous avez besoin de quelque chose qui est exécuté sur le client avant le téléchargement réel.
Avec (côté serveur) php, vous pouvez vérifier la dimension uniquement après que le fichier a été téléchargé ou avec pload hooks peut-être pendant le chargement de l'image (à partir des données d'en-tête du fichier image).
Vos options sont donc flash, peut-être html5 avec son FileAPI (je n'ai pas testé ça, ce n'est peut-être pas faisable), Java-applet, silverlight, ...
Nous pouvons le faire facilement avec le fichier temporaire.
$image_info = getimagesize($_FILES["file_field_name"]["tmp_name"]);
$image_width = $image_info[0];
$image_height = $image_info[1];
Voilà comment je l'ai résolu.
$test = getimagesize('../bilder/' . $filnamn);
$width = $test[0];
$height = $test[1];
if ($width > 1000 || $height > 1000)
{
echo '<p>iamge is to big';
unlink('../bilder/'.$filnamn);
}
Si le fichier se trouve dans le tableau $_FILES
(Car il a été sélectionné dans un formulaire en plusieurs parties), il a déjà été téléchargé sur le serveur (généralement vers/tmp ou un chemin de fichier similaire), vous pouvez donc continuer et utiliser la fonction getimagesize()
en php pour obtenir les dimensions (y compris tous les détails sous forme de tableau).
Ce travail pour moi
$file = $_FILES["files"]['tmp_name'];
list($width, $height) = getimagesize($file);
if($width > "180" || $height > "70") {
echo "Error : image size must be 180 x 70 pixels.";
exit;
}
Pour obtenir la largeur et la hauteur de l'image, utilisez getimagesize(path_name)
, cette fonction renvoie le tableau qui contient la hauteur, la largeur, la constante image_type et d'autres informations liées à l'image. Par le code suivant, vous pouvez y parvenir.
Note - Vous devez passer l'emplacement temporaire de l'image et utiliser le morceau de code suivant avant d'utiliser move_upload_file()
, sinon il déplacera le fichier vers le chemin de destination et vous n'obtiendrez pas le résultat souhaité pour l'image
$imageInformation = getimagesize($_FILES['celebrity_pic']['tmp_name']);
print_r($imageInformation);
$imageWidth = $imageInformation[0]; //Contains the Width of the Image
$imageHeight = $imageInformation[1]; //Contains the Height of the Image
if($imageWidth >= your_value && $imageHeight >= your_value)
{
//Your Code
}
array getimagesize ( string $filename [, array &$imageinfo ] )
La fonction getimagesize () déterminera la taille de tout fichier d'image donné et renverra les dimensions avec le type de fichier et une chaîne de texte hauteur/largeur à utiliser dans une balise HTML IMG normale et le type de contenu HTTP correspondant.
Pour plus de mise à jour, visitez le site: http://www.php.net/manual/en/function.getimagesize.php
Très important - si vous utilisez Dreamweaver pour coder et que vous essayez d'obtenir la taille de l'image à l'aide du $_FILES[anyFormName][tmp_name]
il affichera une erreur en mode d'affichage en direct .. Il m'a fallu un certain temps pour comprendre cela.