Установить ограничение размера файла - PullRequest
0 голосов
/ 14 декабря 2011

Интересно, может ли кто-нибудь помочь мне?Интернет и некоторые первоклассные пособия от одного @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 голосов
/ 14 декабря 2011

Вы можете использовать это

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 />";   
    }
0 голосов
/ 14 декабря 2011

getfilesize() возвращает размеры изображения в пикселях, а не размер файла.Вам нужно что-то вроде этого:

if (filesize($_FILES['tmp_name']) >= 100000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...