2017-02-26 86 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更改爲符合您的要求的任何尺寸,然後重新啓動所有服務:)