目前我已允许上传.jpg文件。
如何添加jpeg,gif和png?
我目前的代码如下......
$filename = basename($_FILES['photo']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
//Check if the file is JPEG image and it's size is less than 5Mb
$allowedExts = array('jpg', 'jpeg', 'gif', 'png');
if ( (in_array($ext, $allowedExts)) && ($_FILES["photo"]["type"] == "image/jpeg") && ($_FILES["photo"]["size"] <= 5242880) ){
//Determine the path to which we want to save this file
$newname = str_replace( ' ', '_', trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';
答案 0 :(得分:1)
制作一系列允许的扩展程序,然后检查它。看看http://php.net/manual/en/function.in-array.php。
你的结局如下:
$allowedExts = array('jpg', 'jpeg', 'gif'); // Add more here
if (in_array($ext, $allowedExts))
{
// Do something here
}
另外,为了检查文件的扩展名,我建议你使用pathinfo:http://php.net/manual/en/function.pathinfo.php 有些人可以通过上传以.jpg结尾的文件来欺骗你,但这可能是.php文件。
[编辑]更新,因为我讨厌迷你评论:
$allowedExtensions = array("image/jpeg", "image/png", "image/gif", "image/pjpeg", "image/jpg");
$pathInfo = pathinfo($_FILES["photo"]["type"]);
if (in_array($pathInfo['extension'], $allowedExtensions))
{
// Do stuff
}
Waaaay这种方式更简单。这甚至可以通过使用pathinfo的第二个参数来简化,但我假设您之后需要数组的其他元素。
答案 1 :(得分:0)
您可以使用以下内容:
if(file_exists($path_image) && in_array(exif_imagetype($path_image),array(1, 2, 3, 6))){ ... }