PHP,HTML检查文件是否是图像

时间:2014-09-30 20:37:52

标签: php html forms

我正在http://harrisonprograms.com创建自己的网站,我在个人资料页面上遇到了问题。

问题是我创建了一个PHP脚本,将图像上传到服务器,例如图像目录可能是Users / whatevertheusername / imagename.png,然后在用户MySQL行的MySQL中添加一个字符串引用。但是在脚本执行此操作之前,它会检查上传的文件是否是使用子字符串函数的图像文件,我无法发布图像,因为我的声誉不够高,所以这里是文本中的代码

if(isset($_POST['SUBMITFILE2'])){

$imageName = $_FILES['UPLFILE2']['name'];
$imageData = file_get_contents($_FILES['UPLFILE2']['tmp_name']);
$imageType = $_FILES['UPLFILE2']['type'];

//VALIDATE WHETHER FILE IS AN IMAGE OR NOT
if(substr("$imageName", 0, 5) == 'image'){

我无法理解的是它曾经工作并验证文件是否是图像,但现在它已经停止工作,我不知道为什么。

3 个答案:

答案 0 :(得分:2)

因此,按名称或扩展名检查文件类型并不好,因为您可以通过普通剩余功能轻松更改它。你可以使用例如,检查上传的文件是否是图像。哑剧型。在php中你有函数mime_content_type()。用法示例:

$imageMimeTypes = array(
    'image/png',
    'image/gif',
    'image/jpeg');

$fileMimeType = mime_content_type($_FILES['UPLFILE2']['tmp_name']);

if (in_array($fileMimeType, $imageMimeTypes)) {
    //passed validation 
}

当然,您可以定义更多mime类型的图像。

答案 1 :(得分:0)

您可以使用exif_imagetype来确定图像的类型

答案 2 :(得分:0)

很确定你可以在这里找到答案:php check file extension in upload form

$allowed =  array('gif','png' ,'jpg'); //extension allowed
$filename = $_FILES['video_file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
    echo 'error';
}else{
//your extra code...
}
相关问题