2012-02-02 84 views
0

好了,所以我做了这个,这只是正常和良好:PHP上传文件类型和-size限制

$file_name = $HTTP_POST_FILES['ufile1']['name']; 
$file_name_for_db = ($HTTP_POST_FILES['ufile1']['name']); 
$new_file_name = $id."_pic1_".$file_name; 
$path = "../users/".$username_session."/photos/".$new_file_name; 

if($ufile !=none) 
{ 
    copy($HTTP_POST_FILES['ufile1']['tmp_name'], $path); 
    $path_of_pic = "../users/".$username_session."/photos/".$id."_pic1_".$file_name_for_db; 
    mysql_query("UPDATE pictures SET pic_1 = '".$path_of_pic."' WHERE id = '$id'"); 
    header("location:../upload/"); 
} 
else 
{ 
    echo "Error"; 
} 

现在我一直在努力做的就是添加限制。

我已经浏览了许多限制教程,它们不工作,无论如何总是返回错误。

我只是想从用户上传什么比图片等文件(.png,.JPG,.JPEG,.GIF,.BMP)和restric不超过5MB

我可以在HTML做到这一点,但你可以轻松过去。我对编程相当陌生,所以我很抱歉如果我写代码的方式很差且笨重。

这个网站帮了我一大堆!你们真棒!提前致谢。

回答

0
if([email protected]reatefromstring(file_get_contents($path))) { 
    // (most likely) not an image 
} 

和:

if(filesize($path) > 5<<20) { 
    // image is bigger than 5MB 
} 
+0

if(!@imagecreatefromstring(file_get_contents($ path))){ //(很有可能)不是图像 回声错误不是图像; } 否则 { 上传图片 } 是这样的方式,将工作或反之亦然? – user1053263 2012-02-02 05:14:23

+0

基本上,是的。 – 2012-02-02 05:21:00