Макар че файла е по-малък, системата го изкарва че е ...

topchokt

Registered
Здравейте имам следният код за ъплоад:
Код:
   <?php
require "includes/config.php";
require "includes/functions.php";


$error = '';
if (isset($_POST['submit']) && !empty($_FILES['pic']['name']) && !empty($_FILES['fail']['name']) && !empty($_POST['subject']) && !empty($_POST['imenavideoto']) && !empty($_POST['dobavil']) )
{
    if (in_array(strtolower(end(explode(".", $_FILES['pic']['name']))), $exp_pic))
 {
        if (in_array(strtolower(end(explode(".", $_FILES['fail']['name']))), $exp_file))
        {
            if ($_FILES['pic']['size'] > 0 && $_FILES['pic']['size'] <= ($max_size_pic * 1024))
            {
                if ($_FILES['fail']['size'] > 0 && $_FILES['fail']['size'] <= ($max_size_file * 1048576))
                {
                	$file_copy = preg_replace("/([\/])+/", "\\1", $file_copy."/");
                	$ex_pic = end(explode(".", $_FILES['pic']['name']));
                	$ex_file = end(explode(".", $_FILES['fail']['name']));
                	$new_name_pic = new_name($ex_pic);
                	$new_name_file = new_name($ex_file);
	
                	
                	while (file_exists($file_copy.$new_name_pic)) { $new_name_pic = new_name($ex_pic); }
                	while (file_exists($file_copy.$new_name_file)) { $new_name_file = new_name($ex_file); }
                	
					if (@copy($_FILES['fail']['tmp_name'], $file_copy.$new_name_file) && @copy($_FILES['pic']['tmp_name'], $file_copy.$new_name_pic))
					{
						mysql_query("INSERT INTO `videos` (`imenavideoto`,`dobavil`,`pic`,`file`,`subject`) VALUES ('".htmlspecialchars($_POST['imenavideoto'])."','".htmlspecialchars($_POST['dobavil'])."','".$file_copy.$new_name_pic."','".$file_copy.$new_name_file."','".htmlspecialchars($_POST['subject'])."')");
						$error = "Файла беше качен успешно!";
					}
					else
					{
						$error = "Файла не беше качен!<br /> След преглед и одобрение от администратор файлът ще бъде видим за всички потребители.";
					}           	
                }
                else
                {
                    $error = "Файла не трябва да превишава $max_size_file MB!";
                }
            }
            else
            {
                $error = "Картинката не трябва да превишава $max_size_pic KB!";
            }
        }
        else
        {
            $error = "Позволени са само следните разширения за файла: ".implode(",", $exp_file);
        }
    }
    else
    {
        $error = "Позволени са само следните разширения за картинка: ".implode(",", $exp_pic);
    }
}
?>
<b><u>Всички полета са задължителни!</u></b>
<form action="" enctype="multipart/form-data" method="post">
<table border="0">
<tr><td>Заглавие:</td><td><input type="txt" name="imenavideoto"><br />(може да използвате кирилица и/или латиница)</td></tr>
<tr><td>Избери видео:</td><td><input type="file" name="fail"><br />(позволени формати: <b>flv, avi</b> максимален размер: <b><?php echo "".$max_size_file." MB"; ?></b>)</td></tr>
<tr><td>Изберете картинка:</td><td><input type="file" name="pic"><br />(позволени формати: <b>jpg, png, gif, jpeg</b> максимален размер: <b><?php echo "".$max_size_pic." KB"; ?></b>) </td></tr>
<tr><td>BBCODE:</td><td><script>edToolbar('mtxtarea'); </script><br />
<tr><td>Описание:</td><td><textarea name="subject" id="mtxtarea" rows="5" cols="30"></textarea></td></tr>
<tr><td>Добавил:</td><td><input type="txt" name="dobavil"><br />(може да използвате кирилица и/или латиница)</td></tr>
</table>
<input type="submit" name="submit" value="Изпрати">
</form>
<b><?=$error?></b>

Задал съм максимален размер на файла 30МБ, но когато опитам да кача видео файл с размер 2 МБ системата извежда съобщение:
Файла не трябва да превишава 30 MB!
...
Ето го и конфиг файла, където съм задал това:
Код:
<?php
$db_conn = @mysql_connect("localhost", "", "") or die(mysql_error()); // тук си пишете данните за връзка с MySQL
@mysql_select_db("", $db_conn) or die(mysql_error()); // тук ви е връзкта с базата данни.
mysql_query("SET NAMES utf8_bin");

$exp_pic = array("jpg","png","gif","jpeg"); // разширения за картинката
$exp_file = array("avi","mpg","wmv","3gp","flv","mp4","mov","mkv"); // разширения за файловете
$max_size_pic = 500; // запишете максималния размер на картинката(в KB)
$max_size_file = 30; // запишете максималния размер на файла(в MB)
$file_copy = "video/"; // къде да се записват файловете

$max_simbols = 300; // колко символа да изкарва в индекса от описанието на всеки файл
$max_width_pic = 300; // максимална ширина на картинката
$max_height_pic = 300; // максимална височина на картинката
?>

Някакви идеи от къде идва грешката ?
 
Нещо не мога да се справя, ще може ли да обясните малко по-просто.

//Добавям в скрипта:
Код:
ini_set('max_execution_time', 300);
ini_set('max_input_time', 300);
ini_set('upload_max_filesize','16M'); //ini_set('upload_max_filesize',16777216);
ini_set('post_max_size','16M'); //ini_set('post_max_size',16777216);
ini_set('memory_limit', '120M');
Но отново не иска.

Пробвах и с .htaccess:

Код:
<IfModule mod_php4.c>
php_value upload_max_filesize 50M
php_value max_execution_time 800
</IfModule>

Резултат няма.
 
rombeca каза:
Чети тука:

http://help.superhosting.bg/faq/11_98_bg.html

Сега ново 20...
Дава ми че снимката е над 500КБ, а всъщност тя е 24КБ ?
Някакви идеи от какво ги прави тези проблеми ?

// Така направих файла php.ini със съдържание:
Код:
error_log=error_log
log_errors=On
error_reporting = E_ALL & ~E_NOTICE
expose_php = Off
output_buffering = Off
max_input_time = 250
safe_mode=off
variables_order = "EGPCS"
extension_dir = "./"
upload_max_filesize = 10
max_file_uploads = 10
post_max_size = 10
register_globals=On
Всичко добре, не ми изкарва съобщение че файловете са по-големи, но не иска да качва и файловете.
Цъкам на качи презарежда страницата и толкова.

//Пробвах махнах този файл, пробвах да кача файл до 2МБ и всичко си работи.
 

Back
Горе