我正在尝试在上传后调整图片大小,所以我做了类似的代码:
if ($_SERVER['REQUEST_METHOD'] == 'POST' AND isset($_FILES['images'])) {
$target_folder = 'upload/';
$nom_image = $_FILES['images']['name'];
$tmp_image = $_FILES['images']['tmp_name'];
$upload_image = $target_folder . basename($nom_image);
//JE RECUPERE L'IMAGE EN JPG :
$ImageChoisie = imagecreatefromjpeg($tmp_image);
//JE VERIFIE SA TAILLE :
$TailleImageChoisie = getimagesize($tmp_image);
//JE DEFINIS LA NOUVELLE TAILLE DE L'IMAGE QUI SERA INSEREE :
$NouvelleTailleImage = 200;
//JE CALCULE LE POURCENTAGE DE REDUCTION :
$Reduction = ( ($NouvelleTailleImage * 100) / $TailleImageChoisie[0] );
//JE DEFINIS LA NOUVELLE LARGEUR DE L'IMAGE :
$NouvelleLargeurImage = ( ($TailleImageChoisie[0] * $Reduction) / 100);
//ON CREE DONC UN DOUBLE DE L'IMAGE QUI SERA CELLE AFFICHEE :
$ImageChoisie = imagecreatefromjpeg($tmp_image);
$NouvelleImage = imagecreatetruecolor($NouvelleTailleImage, $NouvelleLargeurImage) or die("Erreur");
//PUIS JE COPIE ET JE REECHANTILLONNE L'IMAGE DE DEPART :
imagecopyresampled($NouvelleImage, $ImageChoisie, 0, 0, 0, 0, $NouvelleLargeurImage, $NouvelleLargeurImage, $TailleImageChoisie[0], $TailleImageChoisie[1]);
//JE N'AI PLUS QU'A DETRUIRE L'IMAGE CHOISIE AU DEPART QUI NE SERT PLUS A RIEN :
imagedestroy($ImageChoisie);
// JE NE GARDE QUE LE NOM DE L'IMAGE SANS SON EXTENSION :
$NomImageChoisie = explode('.', $nom_image);
//JE L'APPELLE $NomImageExploitable :
$NomImageExploitable = '';
// JE NOMME LE PREMIER TERME DE L'EXPLODE : i
$i = 0;
//JE DECOUPE LE TERME NomImage EN AUTANT DE CHAÎNE QU'il Y EN A GRACE A -1, ET LE PREMIER TERME JE L'APPELLE $NomImage[0]
while ($i < (count($NomImageChoisie) - 1)) {
$NomImageExploitable = $NomImageChoisie[0];
$i++;
}
//LA PREMIERE CHAINE EST NomImageExploitable, JE LA PASSE EN IMAGEJPEG POUR EN CREER UN FICHIER JPEG AVEC UNE QUALITE DE 100 :
imagejpeg($NouvelleImage, 'uploads/' . $NomImageExploitable . '.jpg', 100);
//LE LIEN VERS L'IMAGE EST DONC :
$Lienimages = 'uploads/' . $NomImageExploitable . '.jpg';
// if (move_uploaded_file($_FILES['images']['tmp_name'], $upload_image)) {
// exec('convert ' . $upload_image . ' -resize ' . $newwidth . 'x' . $newheight . '^ ' . $thumbnail);
// rename($upload_image, $actual);
// }
}
我使用变量SuperGlobal $ _FILES,但在某些行中它返回给我错误。
warning: basename() expects parameter 1 to be string, array given in C:\wamp\www\cyb2.fr\private_area\plugin-upload\upload.php on line 19
同样在这里:
Warning: imagecreatefromjpeg() expects parameter 1 to be string, array given in C:\wamp\www\cyb2.fr\private_area\plugin-upload\upload.php on line 21
任何帮助将不胜感激
答案 0 :(得分:2)
$ _ FILES [&#39; images&#39;] [&#39; name&#39;]是一个数组,你必须使用$ _FILES [&#39; images&#39;] [&#39;名字&#39;] [$ i]在一个循环中,$ i = 0到$ i = count($ _ FILES [&#39; images&#39;] [&#39; name&#39;]) - 1 < / p>