PHP上传文件类型和-size限制

时间:2012-02-02 05:07:45

标签: php mysql upload

好的,所以我做了这个,这很好用,很好:

$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)且不超过5mb

我可以在HTML中执行此操作,但您可以轻松地通过它。我对编程很陌生,所以如果我编写代码的方式很差而且很笨重,我很抱歉。

这个网站帮了我几次!你们真棒!提前谢谢。

2 个答案:

答案 0 :(得分:2)

此链接可帮助您限制.jpg, .jpeg, and so on以外的图片以及最大上传大小,如果您想调整图片大小,请遵循以下教程:http://www.9lessons.info/2009/03/upload-and-resize-image-with-php.html

答案 1 :(得分:0)

if( !@imagecreatefromstring(file_get_contents($path))) {
    // (most likely) not an image
}

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