卡在 php 中上传不同扩展的图片
stuck at uploading images of different extensions in php
我在上传 .png 和 .bmp 扩展名时遇到问题,而其他扩展名可以正常工作
$allowed_types = array(".gif" , ".jpg" , ".jpeg", ".png" , ".bmp");
$fname = $_FILES["file"]["name"];
$f_ext = substr($fname, strripos($fname, '.'));
$f_size = $_FILES["file"]["size"];
if (in_array($f_ext,$allowed_types) && ($f_size < 50000))
{
// upload
} else {
//error
我就是想不通我做错了什么。 Jpg 可以,gif 可以,jpeg 可以,但是 png 和 bmp 不行。
试试这个。我的第一反应有点仓促。我总是在我的扩展检查中排除点。
$allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/jpg', 'image/png', 'image/x-png', 'image/bmp', 'image/x-windows-bmp');
$allowed_exts = array('gif', 'jpeg', 'jpg', 'png', 'bmp');
$img_info = @getimagesize($_FILES['file']['tmp_name']);
$f_type = image_type_to_mime_type($img_info[2]); // file type
$f_ext = strtolower(substr(strrchr($_FILES['file']['name'], '.'), 1)); // file extension
$f_size = $_FILES["file"]["size"];
$fname = $_FILES["file"]["name"];
IF ( (in_array($f_ext, $allowed_exts)) && (in_array($f_type, $allowed_types)) && ($f_size <= 50000) ) {
// upload
} else {
//error
die('<pre>Error!<br>Size: '.$f_size.'<br>Extension: '.$f_ext.'<br>Mime: '.$f_type.'</pre>');
}
此外,MAX_FILE_SIZE 必须位于文件输入字段之前。 Php 也应配置为允许文件大小。
我在上传 .png 和 .bmp 扩展名时遇到问题,而其他扩展名可以正常工作
$allowed_types = array(".gif" , ".jpg" , ".jpeg", ".png" , ".bmp");
$fname = $_FILES["file"]["name"];
$f_ext = substr($fname, strripos($fname, '.'));
$f_size = $_FILES["file"]["size"];
if (in_array($f_ext,$allowed_types) && ($f_size < 50000))
{
// upload
} else {
//error
我就是想不通我做错了什么。 Jpg 可以,gif 可以,jpeg 可以,但是 png 和 bmp 不行。
试试这个。我的第一反应有点仓促。我总是在我的扩展检查中排除点。
$allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/jpg', 'image/png', 'image/x-png', 'image/bmp', 'image/x-windows-bmp');
$allowed_exts = array('gif', 'jpeg', 'jpg', 'png', 'bmp');
$img_info = @getimagesize($_FILES['file']['tmp_name']);
$f_type = image_type_to_mime_type($img_info[2]); // file type
$f_ext = strtolower(substr(strrchr($_FILES['file']['name'], '.'), 1)); // file extension
$f_size = $_FILES["file"]["size"];
$fname = $_FILES["file"]["name"];
IF ( (in_array($f_ext, $allowed_exts)) && (in_array($f_type, $allowed_types)) && ($f_size <= 50000) ) {
// upload
} else {
//error
die('<pre>Error!<br>Size: '.$f_size.'<br>Extension: '.$f_ext.'<br>Mime: '.$f_type.'</pre>');
}
此外,MAX_FILE_SIZE 必须位于文件输入字段之前。 Php 也应配置为允许文件大小。