Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Загрузка файлов 1-2мб.

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте
вот столкнулся с проблемой, что я не могу загрузить файл на сервер размером в 1 и больше мб.
 
в php.ini

Код:
post_max_size = 15M
upload_max_filesize = 15М

 
и phpinfo(); выдает 15М.
 
как можно убрать ограничение или увеличить его??
 
Даже проверка
 

Код:
if(is_uploaded_file($_FILES["file"]["tmp_name"]))

 
не дает true

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 15:48 15-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
вот столкнулся с проблемой, что я не могу загрузить файл на сервер размером в 1 и больше мб.

в чем то выражается, помимо
Цитата:
if(is_uploaded_file($_FILES["file"]["tmp_name"]))

посмотрите содержимое $_FILES, проверьте, есть ли файл по пути указанном там

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:17 15-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
var_dump()?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:43 15-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
var_dump()

хотя бы

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:45 15-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Код:
array(1) {
  ["file"]=>
  array(5) {
    ["name"]=>
    string(7) "3.1.png"
    ["type"]=>
    string(0) ""
    ["tmp_name"]=>
    string(0) ""
    ["error"]=>
    int(1)
    ["size"]=>
    int(0)
  }
}

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:15 15-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
UPLOAD_ERR_INI_SIZE
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

уверены, что читается именно тот php.ini при загрузке?  
смотрите phpinfo() именно в том скрипте, что обрабатывает загрузку.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:17 15-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
да я смотрел phpinfo()
там указанно то значение, которое я указал в php.ini там всё правильно.
у меня даже теперь не загружает файлы размером в >10кб.
 
в phpinfo()

Код:
upload_max_filesize    15М    15М

 
я сменил M на анг. (просто не помню какую я там ставил... и теперь загружает...)
такой вопрос, можно как-то убрать лимит на загрузку??
я ставил 0 и не хотело загружать...

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 18:26 16-09-2013 | Исправлено: Sutar, 18:32 16-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
такой вопрос, можно как-то убрать лимит на загрузку??  

поставьте 100G - мало?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:49 16-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
я ставил 100G - у меня скрипт с if(isset($_POST["load"])) не работал....
т.е. я загружал файл, затем я нажимаю на кнопку name="load"
 
и такой скрипт...
 

Код:
if(isset($_POST["load"]))
{
    var_dump($_FILES);
    exit;
...
}

 
даже не работал...
потом поставил 90000M тоже не работало...
я поставил 90M и всё начало работать....
 
но теперь ещё 1 прикол, в var_dump() пишет что файл есть... но на сервер его не загружает....
в чем тут проблема может быть?
 
вот весь код
 

Код:
if(isset($_POST["load"]))
{
    //var_dump($_FILES);
    //exit;
    
    if(is_uploaded_file($_FILES["file"]["tmp_name"]))
    {
        if(preg_match("#\.(jpg|jpeg|png|gif|rar|zip|exe|iso|dll|torrent|mp3|wav|3gp|mkv|mp4|avi)$#i", $_FILES["file"]["name"], $imgtype))
        {
                copy($_FILES["file"]["tmp_name"], "../upload/news/$_GET[id]/$_FILES[file][name]");
        }
    }
}

 
я код не много урезал, что показать основную функцию... я всё что убрал это MySQL запросы....

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:48 17-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
var_dump() пишет что файл есть... но на сервер его не загружает....  
в чем тут проблема может быть?  

вывод покажите  

Цитата:
 copy($_FILES["file"]["tmp_name"], "../upload/news/$_GET[id]/$_FILES[file][name]");

ну кто вас так учил делать?
http://www.php.net/manual/en/features.file-upload.post-method.php

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:33 17-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
ну кто вас так учил делать?

move_uploaded_file()?
 

Цитата:
вывод покажите


Код:
array(1) {
  ["file"]=>
  array(5) {
    ["name"]=>
    string(5) "3.png"
    ["type"]=>
    string(9) "image/png"
    ["tmp_name"]=>
    string(27) "C:\WINDOWS\Temp\php90AD.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(1917801)
  }
}

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:07 17-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
["tmp_name"]=>  
    string(27) "C:\WINDOWS\Temp\php90AD.tmp"  
    ["error"]=>  
    int(0)  

ошибок нет, файл на месте, но copy использовать нельзя.
 

Цитата:
move_uploaded_file()?  

ну вы же смотрели ссылку? там все показано.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:08 17-09-2013 | Исправлено: Cheery, 23:09 17-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
я загружаю изображение
а там идет такой скрипт
 

Код:
if($format == ".jpg" || $format == ".jpeg")
                {
                    $text = "REVELINS.PP.UA";
                    $ch = "D:\Revelins/include/kartika.ttf";
                    $pic = imagecreatefromjpeg($_FILES["file"]["tmp_name"]);
                    
                    if($filesize < 2097152)
                    {
                        header("Content-type: image/jpeg");
                        
                        $color = imagecolorallocatealpha($pic, 0, 0, 0, 20);
                        $bbox = imagettfbbox(12, 0, $ch, $text);
                        
                        $x = imagesx($pic) - $bbox[2] - 6;
                        $y = imagesy($pic) - $bbox[3] - 6;
                        
                        $width = 0;
                        if(imagesx($pic) > 600) {$width = 1;}
                        
                        imagettftext($pic, 12, 0, $x-1, $y, $color, $ch, $text);
                        imagettftext($pic, 12, 0, $x+1, $y+1, $color, $ch, $text);
                        imagettftext($pic, 12, 0, $x-1, $y-1, $color, $ch, $text);
                        imagettftext($pic, 12, 0, $x, $y, imagecolorallocatealpha($pic, 255, 255, 255, 20), $ch, $text);
                        imagejpeg($pic, ".../upload/news/$_GET[id]/$filename", 100);
                        imagedestroy($pic);
                        
                        header("Content-type: text/html");
                    }
                }

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:10 17-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
я загружаю изображение  
а там идет такой скрипт

и?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:12 17-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
у меня изображения сохраняет в директорию ../upload/news/$_GET[id]/$filename
но если файл больше 1мб не сохраняет...

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 18:55 18-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
но если файл больше 1мб не сохраняет

1) не использовать copy
2)
Цитата:
$filesize < 2097152

ни о чем не говорит?
 

Цитата:
.../upload/news/$_GET[id]/$filename

плохо
 

Цитата:
header("Content-type: image/jpeg")

а затем

Цитата:
header("Content-type: text/html")

смысл?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:02 18-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
не использовать copy

copy() используется только для файлов...
если я загружаю картинку, copy() не используется...
 

Цитата:
ни о чем не говорит?

это лимит, чтоб изображение было меньше 2мб. (я загружаю 1.8мб)
 

Цитата:
header("Content-type: image/jpeg")
а затем
header("Content-type: text/html")

 
если убрать
 

Код:
header("Content-type: text/html")

страница будет отображаться в браузере как "Изображение"

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 16:42 19-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
страница будет отображаться в браузере как "Изображение"

тогда зачем выдаете заголовки изображения??
 

Цитата:
это лимит, чтоб изображение было меньше 2мб. (я загружаю 1.8мб)

файл загрузился, путь к нему, во временной папке, есть. то есть он уже на сервере.

Цитата:
        if(preg_match("#\.(jpg|jpeg|png|gif|rar|zip|exe|iso|dll|torrent|mp3|wav|3gp|mkv|mp4|avi)$#i", $_FILES["file"]["name"], $imgtype))  
        {  
                copy($_FILES["file"]["tmp_name"], "../upload/news/$_GET[id]/$_FILES[file][name]");  
        }  

что тут делаете? так и стоит copy?


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:49 19-09-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
тогда зачем выдаете заголовки изображения??

тогда текст не налаживается на картинки...
 

Цитата:
что тут делаете? так и стоит copy?

тут идет расшифровка файла на (картинки/видео/музыка/простой файл) (от формата файла)
и добавляется в MySQL информация для файла.... (это как-бы добавление файлов к новостям)
 
на изображения налаживается текст а все другие файлы просто загружает...
 
вот весь код
 

Код:
if(isset($_POST["load"]))
{
    //var_dump($_FILES);
    //exit;
    /* type - 1. text 2. images 3. sound 4. video 5. other */
    if(is_uploaded_file($_FILES["file"]["tmp_name"]))
    {
        if(preg_match("#\.(jpg|jpeg|png|gif|rar|zip|exe|iso|dll|torrent|mp3|wav|3gp|mkv|mp4|avi)$#i", $_FILES["file"]["name"], $imgtype))
        {
            if(!file_exists("../upload/news/")) {mkdir("../upload/news/", 0700);}
            if(!file_exists("../upload/news/$_GET[id]/")) {mkdir("../upload/news/$_GET[id]/", 0700);}
            
            $format = $imgtype[0];
            
            function g_name_random($format)
            {
                $arr = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
                $pass = "";
                for($i = 0; $i < rand(10, 30); $i++) {$pass .= $arr[rand(0, 35)];}
                $pass .= $format;
                
                if(file_exists("../upload/news/$_GET[id]/".$pass)) {return g_name_random($format);}
                return $pass;
            }
            
            $filenumb = 1;
            $filetype = 5;
            $filesize = $_FILES["file"]["size"];
            $filename = g_name_random($format);
            $fileoname = $_FILES["file"]["name"];
            
            if($format == ".jpg" || $format == ".jpeg" || $format == ".png" || $format == ".gif") {$filetype = 2;}
            elseif($format == ".mp3" || $format == ".wav") {$filetype = 3;}
            elseif($format == ".3gp" || $format == ".mkv" || $format == ".mp4" || $format == ".mp4" || $format == ".avi") {$filetype = 4;}
            
            $connect = mysql_query("SELECT `number` FROM `news_contents` WHERE `section` = '$_GET[id]' ORDER BY `number` DESC LIMIT 1");
            $files = mysql_fetch_object($connect);
            if($files) {$filenumb = $files->number+1;}
            
            if($filetype == 2)
            {
                if($filesize < (2*1048576))
                {
                    if($format == ".jpg" || $format == ".jpeg")
                    {
                        $text = "TEXT IMAGES";
                        $ch = "../include/kartika.ttf";
                        $pic = imagecreatefromjpeg($_FILES["file"]["tmp_name"]);
                        
                        header("Content-type: image/jpeg");
                        
                        $color = imagecolorallocatealpha($pic, 0, 0, 0, 20);
                        $bbox = imagettfbbox(12, 0, $ch, $text);
                        
                        $x = imagesx($pic) - $bbox[2] - 6;
                        $y = imagesy($pic) - $bbox[3] - 6;
                        
                        $width = 0;
                        if(imagesx($pic) > 600) {$width = 1;}
                        
                        imagettftext($pic, 12, 0, $x-1, $y, $color, $ch, $text);
                        imagettftext($pic, 12, 0, $x+1, $y+1, $color, $ch, $text);
                        imagettftext($pic, 12, 0, $x-1, $y-1, $color, $ch, $text);
                        imagettftext($pic, 12, 0, $x, $y, imagecolorallocatealpha($pic, 255, 255, 255, 20), $ch, $text);
                        imagejpeg($pic, ".../upload/news/$_GET[id]/$filename", 100);
                        imagedestroy($pic);
                        
                        header("Content-type: text/html");
                        mysql_query("INSERT INTO `news_contents` (`section`, `number`, `type`, `fname`, `width`) VALUES('$_GET[id]', '$filenumb', '$filetype', '$filename', '$width')");
                    }
                } else {$error = "Размер изображения превышает 2мб.";}
            }
            else
            {
                if(is_uploaded_file($_FILES["file"]["tmp_name"]))
                {
                    if($filesize < (5*1024*1048576))
                    {
                        move_uploaded_file($_FILES["file"]["tmp_name"], "../upload/news/$_GET[id]/$filename");
                        
                        mysql_query("INSERT INTO `news_contents` (`section`, `number`, `type`, `size`, `fname`, `oname`) VALUES('$_GET[id]', '$filenumb', '$filetype', '$filesize', '$filename', '$fileoname')");
                    } else {$error = "Размер файла превышает 5гб.";}
                }
            }
        }
    }
}

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 22:46 19-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
тогда текст не налаживается на картинки...  

ну не надо, а ? заголовки content-type имеют отношение к выводимому в браузер содержимому..  они не влияют на работу функций внутри php скрипта.
поэтому два раза их делать не нужно - если выдаете картинку в браузере, то это контент тип картинки, если же текст, то текста.
 
а не сначала одно, а потом другое.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:59 19-09-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Загрузка файлов 1-2мб.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru