Грузится через форму, обрабатывается примерно так
for ($i=1; $i<20; $i++)
{
$t = $i-1;
$rand=mt_rand(1, 999);
if ($_FILES['filename1']['name'][$t]&&$_FILES['filename2']['name'][$t])
{
$f = $i.'.jpg';
move_uploaded_file($_FILES['filename1']['tmp_name'][$t],$p.'/'.$i.'.jpg');
move_uploaded_file ($_FILES['filename2']['tmp_name'][$t],$p1.'/'.$i.'.jpg');
и тд...
Загрузка работает, но грузится лишь 10 картинок. 11ая уже не загружается.
а даже если в форме оставить 10 первых пустые, а 11 заполнить - загрузка не идет.
Прям бред какой-то :(
Может больше и нельзя? во всем интернете информацию не нашел. Есть лишь установки размера передаваемых файлов в php.ini
Спустя 29 минут, 5 секунд (16.12.2010 - 00:01) GRean написал(а):
С такой я проблемой сталкивался, но не в php, а в action script. Суть в том, что стоит ограничение в браузере на максимальную загрузку файлов за раз.Вроде как в каждом браузере свой лимит на закачку. Выход? делай обработчик закачки.
Спустя 33 минуты, 44 секунды (16.12.2010 - 00:35) ИНСИ написал(а):
Гость вижу как минимум 3 варианта:
1. В начале файла поставь:
2. Попробуй в таком варианте все сделать:
3. А зачем у тебя 2 загрузки сразу? Маленькая и большая фотка?
1. В начале файла поставь:
set_time_limit(0);
2. Попробуй в таком варианте все сделать:
while(list($uploadFile) = each($_FILES)) {
// тут сам код загрузки
}
3. А зачем у тебя 2 загрузки сразу? Маленькая и большая фотка?
Спустя 8 часов, 14 минут, 45 секунд (16.12.2010 - 08:50) Guest написал(а):
да, две формы - для маленькой и большой картинки.
маленькая обычно не сжатая большая, а определенный участок большой картинки для наглядности.
Можно конечно быстренько переписать все и сделать загрузку по другому, но просто интересно почему так.
думаю не один из вариантов предложеных неверный.
даже если первые 10 оставить пустые поля, а заполнить лишь 11и12 - картинки не грузятся...Скорее всего есть какое-то мифическое ограничение. но какое...
на сервере лишь
php_value post_max_size 256M
php_value upload_max_filesize 256M
и все.... других настроек нет.
помогите)
маленькая обычно не сжатая большая, а определенный участок большой картинки для наглядности.
Можно конечно быстренько переписать все и сделать загрузку по другому, но просто интересно почему так.
думаю не один из вариантов предложеных неверный.
даже если первые 10 оставить пустые поля, а заполнить лишь 11и12 - картинки не грузятся...Скорее всего есть какое-то мифическое ограничение. но какое...
на сервере лишь
php_value post_max_size 256M
php_value upload_max_filesize 256M
и все.... других настроек нет.
помогите)
Спустя 1 час, 45 минут, 56 секунд (16.12.2010 - 10:36) linker написал(а):
print_r($_FILES);расставит все на свои места, правь свой цикл, там бред написан.
Спустя 9 минут, 29 секунд (16.12.2010 - 10:45) Guest написал(а):
linker, объясните в чем бред, если не трудно

Спустя 3 минуты, 10 секунд (16.12.2010 - 10:48) Guest написал(а):
мне кажется бред несете Вы
Спустя 9 минут, 1 секунда (16.12.2010 - 10:57) Basili4 написал(а):
если это не бредни
if ($_FILES['filename1']['name'][$t]&&$_FILES['filename2']['name'][$t])
{
$f = $i.'.jpg';
move_uploaded_file($_FILES['filename1']['tmp_name'][$t],$p.'/'.$i.'.jpg');
move_uploaded_file ($_FILES['filename2']['tmp_name'][$t],$p1.'/'.$i.'.jpg');
то это мир стоит того чтобы сгореть в огне.
if ($_FILES['filename1']['name'][$t]&&$_FILES['filename2']['name'][$t])
{
$f = $i.'.jpg';
move_uploaded_file($_FILES['filename1']['tmp_name'][$t],$p.'/'.$i.'.jpg');
move_uploaded_file ($_FILES['filename2']['tmp_name'][$t],$p1.'/'.$i.'.jpg');
то это мир стоит того чтобы сгореть в огне.

Спустя 1 минута, 27 секунд (16.12.2010 - 10:59) Guest написал(а):
Basili4, ну так объясните в чем тут бред!!!
Спустя 3 минуты, 27 секунд (16.12.2010 - 11:02) Basili4 написал(а):
Guest
ответь на вопрос зачем это ???? нужно что оно делает.
потом задай еще один вопрос зачем ????
и третий вопрос если ты сможешь дать на него правильный ответ ты сам ответишь на свой изначальный вопрос.
ответь на вопрос зачем это ???? нужно что оно делает.
потом задай еще один вопрос зачем ????
и третий вопрос если ты сможешь дать на него правильный ответ ты сам ответишь на свой изначальный вопрос.
Цитата (Guest @ 16.12.2010 - 11:59) |
в чем тут бред!!! |
так 3 вопрос. Как это оптимизировать.
Спустя 2 минуты, 41 секунда (16.12.2010 - 11:05) Guest написал(а):
Basili4, в данном случае я считаю,что абсолютно прав.
Если у Вас нет слов тыкнуть и указать на ошибку - то Вы очень зазнались
Если у Вас нет слов тыкнуть и указать на ошибку - то Вы очень зазнались
Спустя 40 секунд (16.12.2010 - 11:05) Basili4 написал(а):
исходя из задачи.
тебе нужно загрузить 10 фалов на сервер так.
У тебя 10 элементов для загрузки файлов
после передачи фалов на сервер пиши print_r($_FILES);
и закоченеть свой цикл. увидишь структуру которую надо обработать.
и начинай обрабатывать по элементам начиная с 0 заканчивая 9
и не надо городить огороды с условиями просто обрабатывай текущий элемент.
тебе нужно загрузить 10 фалов на сервер так.
У тебя 10 элементов для загрузки файлов
после передачи фалов на сервер пиши print_r($_FILES);
и закоченеть свой цикл. увидишь структуру которую надо обработать.
и начинай обрабатывать по элементам начиная с 0 заканчивая 9
и не надо городить огороды с условиями просто обрабатывай текущий элемент.
Спустя 8 секунд (16.12.2010 - 11:06) linker написал(а):
Ну во-первых, у тебя куча ошибок обращения к несуществующим элементам массивов. Во-вторых, у тебя два разных массива файлов с именами "filename1" или "filename2", как я могу судить в этих массивах может быть разное количество файлов. Когда массив динамический и неизвестно количество элементов можно использовать foreach(). Но в твоем случае сойдет пока и банальная проверка isset($_FILES['filename2']['name'][$i])
for($i = 0; $i < 10; $i ++)
{
if (isset($_FILES['filename1']['name'][$i]))
move_uploaded_file($_FILES['filename1']['tmp_name'][$i], $p . '/' . ($i + 1) . '.jpg');
if (isset($_FILES['filename2']['name'][$i]))
move_uploaded_file($_FILES['filename2']['tmp_name'][$i], $p1 . '/' . ($i + 1) . '.jpg');
...
}
Спустя 1 минута, 21 секунда (16.12.2010 - 11:07) Basili4 написал(а):
Guest
я не буду писать код для тебя. это не принесет пользы не тебе не мне. Я написал свое виденье проблемы. если ты считаешь что прав то да Ты прав..
я не буду писать код для тебя. это не принесет пользы не тебе не мне. Я написал свое виденье проблемы. если ты считаешь что прав то да Ты прав..
Спустя 6 минут, 27 секунд (16.12.2010 - 11:13) Guest написал(а):
Basili4, специально для тебя, и для тех кто не хочет/не умеет читать все полностью и с начала повторю более разжовано.
Задача:
загрузить 40 картинок на сервер. За раз. не очень больших - в то место где они нужны в статье будующей.
из этих 40 картинок - 20 полупревью (маленькие картинки с понятным содержимым, которые дают понять что будет на большой) и 20 полноценных картинок 800х600.
два массива - filename1 и filename2
цикл обрезал и выставил для понятния общего алгоритма обработки - не надо смотреть на переменную t,f и думать для чего они нужны там.
они для дальнейшей работы с БД, да и дело тоже в не этом.
переменные p и p2 тоже не нужны для понимания.
число 20 в цикле опять же чтобы было понятно кол-во картинок которые должны будут загружены. ВАМ.
В общем проблема решилась тем, что она не решаема.
Максимальный элемент массива filename - от 0 до 9
итого всего 10 картинок можно отправить за раз.
т.е. 20 в двух массивах.
вопрос отпал.
спасибо за конструктив, которого не оказалось
Задача:
загрузить 40 картинок на сервер. За раз. не очень больших - в то место где они нужны в статье будующей.
из этих 40 картинок - 20 полупревью (маленькие картинки с понятным содержимым, которые дают понять что будет на большой) и 20 полноценных картинок 800х600.
два массива - filename1 и filename2
цикл обрезал и выставил для понятния общего алгоритма обработки - не надо смотреть на переменную t,f и думать для чего они нужны там.
они для дальнейшей работы с БД, да и дело тоже в не этом.
переменные p и p2 тоже не нужны для понимания.
число 20 в цикле опять же чтобы было понятно кол-во картинок которые должны будут загружены. ВАМ.
В общем проблема решилась тем, что она не решаема.
Максимальный элемент массива filename - от 0 до 9
итого всего 10 картинок можно отправить за раз.
т.е. 20 в двух массивах.
вопрос отпал.
спасибо за конструктив, которого не оказалось
Спустя 2 минуты, 29 секунд (16.12.2010 - 11:16) Guest написал(а):
linker, в моей задаче нужна именно проверка, чтобы существовали элементы массива filename1[1] и filename2[1] (НАПРИМЕР)
если не будет хотя бы одного из них - мне это не интересно.
только парами.
если не будет хотя бы одного из них - мне это не интересно.
только парами.
Спустя 5 минут, 45 секунд (16.12.2010 - 11:22) Basili4 написал(а):
Guest
не решаемых задач нет есть кривая архитектура.
не решаемых задач нет есть кривая архитектура.
Спустя 54 секунды (16.12.2010 - 11:23) kovaldm написал(а):
Я не понял из-за чего сыр-бор. Тс, читаешь вот это. Все вопросы сами собой отпадут.
Спустя 4 минуты, 20 секунд (16.12.2010 - 11:27) Guest написал(а):
kovaldm, уважаемый, Вы в своем уме или не умеете тоже читать?
Basili4, согласен, но стоит отталкиваться от конкретных задач.
все уже исправил, и грузятся все картинки
Basili4, согласен, но стоит отталкиваться от конкретных задач.
все уже исправил, и грузятся все картинки
Спустя 19 минут, 1 секунда (16.12.2010 - 11:46) linker написал(а):
Guest
А ты не пробовал разобраться в библиотеке GD, чтобы превью делать самому, а не заставлять пользователя?
А ты не пробовал разобраться в библиотеке GD, чтобы превью делать самому, а не заставлять пользователя?
Спустя 5 минут, 56 секунд (16.12.2010 - 11:52) Guest написал(а):
linker
1. это админ_зона для меня лично.
2. превью это не сжатая картинка со всех сторон, а чуть уменьшана и обрезана для лучшего понимания изображения. Поэтому делается все в ручную.
напримиер:

и
1. это админ_зона для меня лично.
2. превью это не сжатая картинка со всех сторон, а чуть уменьшана и обрезана для лучшего понимания изображения. Поэтому делается все в ручную.
напримиер:

и

Спустя 8 минут, 11 секунд (16.12.2010 - 12:00) linker написал(а):
Тогда понятно.
Спустя 1 час, 15 минут, 3 секунды (16.12.2010 - 13:15) ИНСИ написал(а):
Guest ты сам создал себе проблему. Неправильно скрипт написал. Тебе люди пытались помочь сделать все правильнее, а ты не хочешь и пытаешь других обвинить в том, что они не читают твой тест.
Они наоборот. Читают, видят что ты еще новичок и помогают советами. Лучше прислушайся и сделай все по человечески. Ты себе потом работу облегчешь.
Они наоборот. Читают, видят что ты еще новичок и помогают советами. Лучше прислушайся и сделай все по человечески. Ты себе потом работу облегчешь.
Спустя 1 час, 8 минут, 32 секунды (16.12.2010 - 14:24) Guest написал(а):
welbox2, до сих пор не понимаю, почему скрипт написан не правильно??? он написан так как требуется в данном исключительном случае.
И кто сказал, что я новичек?
у меня была проблема, и никто ее не решил по другому из людей здесь присутствующих, включая Вас. set_time_limit(0); был написан ранее.
Укажите мне на явные ошибки!
Проблема, что нельзя отправить из одной формы и одного массива больше 10 файлов за раз. Можно используя - 2,3,4 массива. В этом и был вопрос.
И кто сказал, что я новичек?
у меня была проблема, и никто ее не решил по другому из людей здесь присутствующих, включая Вас. set_time_limit(0); был написан ранее.
Укажите мне на явные ошибки!
Проблема, что нельзя отправить из одной формы и одного массива больше 10 файлов за раз. Можно используя - 2,3,4 массива. В этом и был вопрос.
Спустя 1 час, 51 минута, 6 секунд (16.12.2010 - 16:15) Guest написал(а):
хочется поправиться в итоге.
отправить за раз можно не больше 20 файлов. не важно - 1 массив, 2 или 4 это будет. При том не важно указаны ли файлы во всех полях или нет. вот такой вот этот $_FILES
может кому-нибудь пригодится.
Выход - отправлять за два раза) иначе никак.
сделал добавлялку для каждого раздела.
отправить за раз можно не больше 20 файлов. не важно - 1 массив, 2 или 4 это будет. При том не важно указаны ли файлы во всех полях или нет. вот такой вот этот $_FILES
может кому-нибудь пригодится.
Выход - отправлять за два раза) иначе никак.
сделал добавлялку для каждого раздела.
Спустя 1 минута, 44 секунды (16.12.2010 - 16:16) Basili4 написал(а):
Guest
ИМХО дело не в количестве файлов а в их размере.
ИМХО дело не в количестве файлов а в их размере.
Спустя 15 минут, 26 секунд (16.12.2010 - 16:32) Guest написал(а):
увы но это не так 
максимальный размер файла и общего размера файлов 256мб

максимальный размер файла и общего размера файлов 256мб
Спустя 23 минуты, 4 секунды (16.12.2010 - 16:55) hellmin написал(а):
Жаль что не видно всего цикла обработки...
потому что если в теле цикла нечаянно вставить $i++ , то получим как раз результат в 10 файлов
потому что если в теле цикла нечаянно вставить $i++ , то получим как раз результат в 10 файлов
for ($i=1; $i<20; $i++) {
...
$i++;
}
Спустя 1 час, 4 минуты, 45 секунд (16.12.2010 - 18:00) Guest написал(а):
hellmin
дело не в цикле, а содержимом $_FILES
print_r($_FILES);
дело не в цикле, а содержимом $_FILES
print_r($_FILES);
Спустя 2 часа, 12 минут, 24 секунды (16.12.2010 - 20:12) kovaldm написал(а):
Почему ты так уверен? Если у тебя цикл отрабатывает только первые 10 элементов, то дело явно не в массиве.
Спустя 12 часов, 54 минуты, 57 секунд (17.12.2010 - 09:07) hellmin написал(а):
Предлагаю привести все тело цикла в студию!
Разговаривать о том чего не видно довольно сложно.
А в передаваемой форме кроме input type='file' еще что-то передается?
Разговаривать о том чего не видно довольно сложно.
А в передаваемой форме кроме input type='file' еще что-то передается?
Спустя 2 часа, 48 минут, 44 секунды (17.12.2010 - 11:56) Guest написал(а):
зачем спорить?)))
я еще раз повторяю отправтье 40 файлов за раз. И в приемки посмотрите содержимое массива! При чем тут вообще цикл то.??????????
Вы эксперты пхп?
циклы вроде лет 15 назад учился строить)
Из 4 отправленных массивов доходит только 2 массива с элементами 0-9.
т.е. двадцать файлов за раз.
Можно сделать и так, чтобы доходили 4 массива но ограничить кол-во элементов до 5.
я еще раз повторяю отправтье 40 файлов за раз. И в приемки посмотрите содержимое массива! При чем тут вообще цикл то.??????????
Вы эксперты пхп?
циклы вроде лет 15 назад учился строить)
Из 4 отправленных массивов доходит только 2 массива с элементами 0-9.
т.е. двадцать файлов за раз.
Можно сделать и так, чтобы доходили 4 массива но ограничить кол-во элементов до 5.
Спустя 1 час, 21 минута, 45 секунд (17.12.2010 - 13:18) kovaldm написал(а):
Цитата |
я еще раз повторяю отправтье 40 файлов за раз. И в приемки посмотрите содержимое массива! |
Отправил, дошли все.
Спустя 1 час, 15 минут, 22 секунды (17.12.2010 - 14:33) Self написал(а):
php.ini
max_file_uploads = 20
max_file_uploads = 20
Спустя 1 час, 8 минут, 26 секунд (17.12.2010 - 15:41) Guest написал(а):
Self, похоже, что Вы правы!
19 ноября команда разработчиков PHP представила новый релиз PHP 5.3.1 направленный на увеличение стабильности ветки 5.3.x По завялениям разработчиков исправлено более 100 ошибок, некоторые из которых связаны с безопасностью. Всем рекомендуется обновиться до этой версии.
Вот некоторые из изменений:
Добавлена директива «max_file_uploads» в php.ini, которая может установить количество запросов при закачке файлов, для предотвращения DOS атак.
Исправлен обход режима safe_mode в tempnam()
Исправлен обход «open_basedir» директивы в функции posix_mkfifo
Исправлено отсутствие safe_mode_include_dir
на моих хостингах нету доступа к php.ini
попробовал через .htaccess - php_value max_file_uploads 60
но не помогло. Написал запрос хостеру могут ли они изменить.
в интернете при запросе "max_file_uploads" выдается - "Дополнительно ограничение на размер загружаемого файла устанавливается в файле php.ini (параметр max_file_uploads)." - что видимо является не правдой.
не размер а кол-во одновременных закачек.
19 ноября команда разработчиков PHP представила новый релиз PHP 5.3.1 направленный на увеличение стабильности ветки 5.3.x По завялениям разработчиков исправлено более 100 ошибок, некоторые из которых связаны с безопасностью. Всем рекомендуется обновиться до этой версии.
Вот некоторые из изменений:
Добавлена директива «max_file_uploads» в php.ini, которая может установить количество запросов при закачке файлов, для предотвращения DOS атак.
Исправлен обход режима safe_mode в tempnam()
Исправлен обход «open_basedir» директивы в функции posix_mkfifo
Исправлено отсутствие safe_mode_include_dir
на моих хостингах нету доступа к php.ini
попробовал через .htaccess - php_value max_file_uploads 60
но не помогло. Написал запрос хостеру могут ли они изменить.
в интернете при запросе "max_file_uploads" выдается - "Дополнительно ограничение на размер загружаемого файла устанавливается в файле php.ini (параметр max_file_uploads)." - что видимо является не правдой.
не размер а кол-во одновременных закачек.
Спустя 6 минут, 25 секунд (17.12.2010 - 15:48) Self написал(а):
в php.ini:
Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
Спустя 3 минуты, 9 секунд (17.12.2010 - 15:51) Guest написал(а):
и еще
22 декабря 2009 Добавлена конфигурационная переменная max_file_uploads, которая устанавливает ограничение на количество файлов, загружаемых за один запрос до 20 по-умолчанию.
Так что никак мне в итоге не отправить 40 файлов за раз, без смены хостера.
Сделал просто ниже еще одну форму для добавления остальных фото.
ну вот и все. вроде как разобрались наконец.
22 декабря 2009 Добавлена конфигурационная переменная max_file_uploads, которая устанавливает ограничение на количество файлов, загружаемых за один запрос до 20 по-умолчанию.
Так что никак мне в итоге не отправить 40 файлов за раз, без смены хостера.
Сделал просто ниже еще одну форму для добавления остальных фото.
ну вот и все. вроде как разобрались наконец.