如何限制上传文件大小php

时间:2013-11-13 10:04:03

标签: php

我有以下php代码,允许用户上传图片。如何修改我的代码,以便有一个限制(比如说最大20 k)到上传图像的大小。这是我的代码。

<?php
/// another code ///
if($_POST)
{   

    if(!isset($_FILES['mFile']))
    {
        //required variables are empty
        die("Please add a image");
    }

    if($_FILES['mFile']['error'])
    {
        //File upload error encountered
        die(upload_errors($_FILES['mFile']['error']));
    }

    $FileName           = strtolower($_FILES['mFile']['name']);
    $auto                           = mysql_real_escape_string($_POST['auto']);
    $FileType           = $_FILES['mFile']['type']; //file type
    $FileSize           = $_FILES['mFile']["size"]; //file size


            if(move_uploaded_file($_FILES['mFile']["tmp_name"], $UploadDirectory . $NewFileName ))
         {


        mysql_query("INSERT INTO posts (title, post, img_name) VALUES ('$FileTitle', '$postURL', '$NewFileName')");

        die('Thank you for your submission.');

   }else{
        die('There seems to be a problem. please try again.');
   }
}
/// another code ///
?>

4 个答案:

答案 0 :(得分:1)

像这样设置

<?php
ini_set('post_max_size', '20K');
ini_set('upload_max_filesize', '20K'); 

答案 1 :(得分:1)

有几种方法可以实现这一目标:

编程:

ini_set('post_max_size', '20K');
ini_set('upload_max_filesize', '20K');

通过php.ini:

post_max_size = 20K
upload_max_filesize = 20K

通过.htaccess:

php_value upload_max_filesize 20K
php_value post_max_size 20K

答案 2 :(得分:1)

这是上传,更改表格和变量的图片大小的个人使用限制样本

$picture = $_FILES['pic']['name'];
$picsize = $_FILES['pic']['size'];
$pictype = $_FILES['pic']['type'];

if(!empty($picture)){
        if(($pictype == 'image/gif') || ($pictype == 'image/jpeg') || ($pictype == 'image/pjpeg') || ($pictype == 'image/png') && ($picsize > 0) && ($picsize <= 30000 )){
            if($_FILES['pic']['error'] == 0)
                {
                $target = UPLOADPATH . $user_name;
                echo $target;
                if(move_uploaded_file($_FILES['pic']['tmp_name'], $target))
                {
                    $query2 = "UPDATE users SET profile_image = '{$user_name}' WHERE user_name = '{$user_name}'";
                    $result2 = mysql_query($query2);
                }
                }
            else{
                echo 'upload failed';
            }


        }
        elseif(($pictype != 'image/gif') && ($pictype != 'image/jpeg') && ($pictype != 'image/pjpeg') && ($pictype != 'image/png')){
            echo 'incorrect file type';
        }
        elseif(($picsize <= 0) || ($picsize > 30000 ))
        {
            echo 'incorrect file size';
        }

答案 3 :(得分:-2)

php.ini中有一个设置,你可以限制它。有些人为此目的使用隐藏字段,但我不喜欢它。

相关问题