Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Загрузка файлов на сервер
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Всем доброго утра!
У меня вопрос, я научился пользоваться функцией move_uploaded_file, сначала столкнулся с проблемой, что файлы больше 2 Мб не грузит, зашёл в php.ini и там внёс изменения:
Поставил вот такие вот значения:
upload_max_filesize = 5G
post_max_size = 5G
Я поставил значения на 5 гигабайт. Я такой радостный был, но потом опять расстроился, когда узнал, что method='POST' не работает, значения от input никаких не получаю. Как переделал опять на 2 Мб, всё снова стало работать.
Вот решение, которое мне нужно:
Как мне сделать так, чтобы на сервер можно было бы загружать бесконечное количество файлов с размером хоть 100 Терробайт, но при том условии, что method="post" будет работать, то есть, чтобы с формами можно было бы работать.
Ведь мне так нахваливали этот PHP. А чё это за язык, который больше двух мегабайт загружать не умеет. Ведь знаю я много серверов, которые на PHP написаны, так там гигами выкладывают. Или может быть есть функция, которая убирает лимит или другая функция для загрузки файлов на сервер с использованием PHP?
Буду благодарен, надеюсь, что тему хорошо раскрыл.
andrewkard
Отправлено: 10 Июля, 2016 - 08:57:54
Участник
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
После изменения php.ini сервер перезагрузили?
Генерал2001
Отправлено: 10 Июля, 2016 - 11:39:27
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Ну естественно перезагрузил, всё заработало. Только потом перестали работать input, method="post". Вообще не мог с формами работать. Вот в чём проблема. Уже даже не в загрузке файлов.
Viper
Отправлено: 10 Июля, 2016 - 13:00:43
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
Генерал2001 или php.ini приложите или результат phpinfo(). Без них смысла нет вести тему.
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Какая ОС? Разрядность? Разрядность и версия PHP?
upload_max_filesize и post_max_size могут быть 32-битными в вашем окружении.
----- PostgreSQL DBA
Генерал2001
Отправлено: 11 Июля, 2016 - 11:40:39
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
ОС: Windows
Разрядность: 64-Бит
Версия PHP: 2.0
А что от этого может быть?
andrewkard
Отправлено: 11 Июля, 2016 - 11:41:57
Участник
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
Генерал2001 пишет:
Версия PHP: 2.0
шутите?
Мелкий
Отправлено: 11 Июля, 2016 - 12:03:06
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Генерал2001 пишет:
Разрядность: 64-Бит
Версия PHP: 2.0
Невозможно. PHP/FI 2.0, устарел задолго до появления AMD64. В те далёкие времена и 32-битными были не все системы. Шутка ли, с 1996 (бета) по 1998 года (релиз 3.0).
Вероятно, 5.2?
Все версии PHP, кроме 7.0 и старше, под виндами только 32-битные. Значит лимит 4 гб.
Большие файлы отправлять по HTTP вообще дурацкая мысль. Не сможете по какой-нибудь причине передать последние 5 мегабайт - и придётся вам передавать весь файл заново.
----- PostgreSQL DBA
Sail
Отправлено: 11 Июля, 2016 - 12:43:10
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Мелкий пишет:
Все версии PHP, кроме 7.0 и старше, под виндами только 32-битные
И 5.5 и 5.6 есть 64-битные. Но они позиционируются как экспериментальные
Генерал2001
Отправлено: 11 Июля, 2016 - 12:56:31
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
И чё, если 64-битные будут, там без лимита и при этом с формами можно будет работать? input, method="post".
Мелкий
Отправлено: 11 Июля, 2016 - 12:56:57
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Sail пишет:
И 5.5 и 5.6 есть 64-битные.
Собрать-то можно и даже соберётся. Вопрос в том, что именно соберётся. В кодовой базе PHP5.x для целых чисел использовался long. На 64-битных *nix - это собирается в 64 бита, на 64-битных виндах - это 32-битное значение. Без глубокой переработки кодой базы, сделанной в PHP7, целочисленные значения под виндами были всегда 32-битные.
https://bugs.php.net/bug.php?id=64863 https://bugs.php.net/bug.php?id=49974 и т.д. (Добавление)
64-битные значения значения позволят выставить лимит выше 4гб.
post_max_size можно отключить установкой в 0, upload_max_filesize в мануале не описано отключение, а в исходник для странной задачи мне идти лениво.
----- PostgreSQL DBA
Генерал2001
Отправлено: 11 Июля, 2016 - 13:04:44
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
А если мне, к примеру надо будет 30 Гб? И чё тогда?
Viper
Отправлено: 11 Июля, 2016 - 13:12:29
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
Генерал2001 пишет:
А если мне, к примеру надо будет 30 Гб? И чё тогда?
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Всмысле?
IllusionMH
Отправлено: 11 Июля, 2016 - 16:07:06
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Генерал2001, нормальные люди большие файлы не грузят постом, а грузят небольшими кусками(чанками) и на сервере "собирают". http://www[dot]resumablejs[dot]com/ и пример на пыхе https://github.com/23/resumable.js/blob/master/samples/Backend%20on%20PHP.md
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.