2017-02-26 59 views
1

我已经完成了将图像插入临时文件的编码。我可以上传大小小于5mb的图片,但一些图片无法插入,我不知道为什么。有人能告诉我我在下面的代码中做错了什么吗?将图像插入临时文件

$imgFile = $_FILES['user_image']['name']; 
$tmp_dir = $_FILES['user_image']['tmp_name']; 
$imgSize = $_FILES['user_image']['size']; 

$upload_dir = 'user_images/'; // upload directory 

$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension 

// valid image extensions 
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions 

// rename uploading image 
$userpic = rand(1000,1000000).".".$imgExt; 

// allow valid image file formats 
if(in_array($imgExt, $valid_extensions)){   
    // Check file size '5MB' 
    if($imgSize < 5000000)    { 
     move_uploaded_file($tmp_dir,$upload_dir.$userpic); 
    } 
    else{ 
     $errMSG = "Sorry, your file is too large."; 
    } 
} 
else{ 
    $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";   
} 

编辑

我发现它的图像大小> 2MB无法被移动到临时文件,但它通过线if($imgSize < 5000000)。我该如何解决?

+0

您是否收到任何错误?你的'php.ini'配置是什么? – Jadeye

+0

@Jadeye我没有得到任何错误 –

回答

0

我发现这是由php.ini中的设置引起的,其中upload_max_filesize设置为2M。我希望这对面临与我相同问题的其他人有用。转到您的php.ini并查看文件上传部分并找到线路upload_max_filesize = 2M。将2M更改为符合您的要求的任何尺寸,然后重新启动所有服务:)