我在網站上有圖片上傳表單,允許用戶上傳圖片。現在我試圖儘可能地保護它。使用php_image_magician ..Getimagesize返回數組而不是布爾型
這是我在那裏我檢查圖像(代碼部分)
for ($i = 0; $i < count($_FILES["user_files"]["name"]); $i++) {
if ($_FILES["user_files"]["name"][$i] <> "") {
$image_mime = strtolower(image_type_to_mime_type(exif_imagetype($_FILES["user_files"]["tmp_name"][$i])));
$tempFile = $_FILES["user_files"]["tmp_name"][$i];
$getImgSize = getimagesize($tempFile);
// if valid image type then upload
if (in_array($image_mime, $valid_image_check, $getImgSize)) {
....
// upload image
}
白衣image_type_to_mime_type
沒有問題。現在我爲getimagesize
添加了這一行,但是在這裏出現錯誤if (in_array($image_mime, $valid_image_check, $getImgSize))
- Warning: in_array() expects parameter 3 to be boolean, array given in
。參數3是$getImgSize
$tempFile = $_FILES["user_files"]["tmp_name"][$i];
$getImgSize = getimagesize($tempFile);
var_dump($_FILES["user_files"]["tmp_name"][$i])
返回string(14) "/tmp/phpkBZOW3"
的形式接受一個以上的圖像,這就是爲什麼是for
那裏[$i]
。這裏有什麼問題?
我不認爲在傳遞參數時有「正確」的順序,或者它有?第一個參數檢查圖像mime,第二個參數檢查'jpeg/png/bmp/etc'和第三個檢查getimagesize .. – John