设置文件大小限制消息

时间:2011-12-14 15:51:02

标签: php blob

我想知道是否有人可以帮助我。

我必须承认我编写PHP相对较新,所以请耐心等待。

通过我在互联网上阅读的文章以及本网站上一个@Marcio的一些一流资料,我整理了一个允许用户将图像文件保存到mySQL数据库的脚本。

我现在已经通过限制可以上传的文件的大小来进一步了,但是我想添加一条警告消息,说明为什么文件无法上传,即因为它的大小大于限制集。

我已经尝试过这个,如下面的代码所示。但不幸的是,我收到一条错误消息,指出存在意外的'>'我知道这与我添加的行有关,但不知道如何以另一种方式编码。

修订了减少代码

 <?php

   // This function makes usage of 
// $_GET, $_POST, etc... variables 
// completly safe in SQL queries 
function sql_safe($s) 
{ 
    if (get_magic_quotes_gpc()) 
        $s = stripslashes($s); 

    return mysql_real_escape_string($s); 
} 

// If user pressed submit in one of the forms 
if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    if (!isset($_POST["action"])) 
    { 
        // cleaning title field 
        $title = trim(sql_safe($_POST['title'])); 

        if ($title == '') // if title is not set 
            $title = '(No title provided';// use (empty title) string 

        if (isset($_FILES['photo'])) 
        { 
            @list(, , $imtype, ) = getimagesize($_FILES['photo']['tmp_name']); 
            // Get image type. 
            // We use @ to omit errors 

            if ($imtype == 3) // cheking image type 
                $ext="png";   // to use it later in HTTP headers 
            elseif ($imtype == 2) 
                $ext="jpeg"; 
            elseif ($imtype == 1) 
                $ext="gif"; 
            else 
                $msg = 'Error: unknown file format'; 

            if($_FILES["fileupload"]["size"]/1024000 >= 10) // 10mb 
            {     
            $fileErrMsg = "<br />Your uploaded file size:<strong>[ ". $_FILES["fileupload"]["size"]/1024000  . " MB]</strong> is more than allowed 10MB Size.<br />";        

            } 

            if (!isset($msg)) // If there was no error 
            { 
                $data = file_get_contents($_FILES['photo']['tmp_name']); 
                $data = mysql_real_escape_string($data); 
                // Preparing data to be used in MySQL query 

                mysql_query("INSERT INTO {$table} 
                                SET ext='$ext', title='$title', 
                                    data='$data'"); 

                $msg = 'Success: Image Uploaded'; 
            } 
        } 

我只是想知道是否有人可以看看这个,让我知道我做错了什么。

非常感谢和亲切的问候

2 个答案:

答案 0 :(得分:0)

getfilesize()以像素为单位返回图像尺寸,而不是文件大小。你需要一些基本的东西:

if (filesize($_FILES['tmp_name']) >= 100000)

答案 1 :(得分:0)

您可以使用此

if($_FILES["fileupload"]["size"]/1024000 >= 10) // 10mb
{
    $fileErrMsg = "<br />Your uploaded file size:<strong>[ ". $_FILES["fileupload"]["size"]/1024000  . " MB]</strong> is more than allowed 10MB Size.<br />";   
    }