Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 16.02.2018, 18:04   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 270
Репутация: 10
По умолчанию Отловить число загружаемых файлов php

Вроде вопрос простой, но гугл не дал ответа. Собственно по дефолту число загружаемых файлом при мультизагрузки 20. И Я не хочу его менять!

Я хочу поймать число вот это как на скрине prnt.sc/iflqdg
И если чел нажмет обработать, ему скажет, ну ты че бро, больше 20 файлов за раз грузить нельзя.

1. Как отловить число загружаемых файлов?

2. Ну и сразу еще вопрос, есть параметр как максимальный размер загружаемого файла. Дак вот, если идут мультизагрузка, а параметр например установлен пусть 50метров, то это распространяется ограничение на каждый файл по отдельности, или на общую сумму веса всех файлов при загрузке. То есть гружу 10 файлов за раз, если каждый файл будет весит 49метров, в сумме 490 метров, это даст загрузить ?
a.n.o.n.i.m вне форума   Ответить с цитированием
Старый 16.02.2018, 18:53   #2
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,269
Репутация: 1064
По умолчанию

1. Чем выполняется мультизагрузка – библиотекой какой-нибудь, или на голом PHP?
Большинство библиотек уже имеют встроенную валидацию, в т.ч. и количества загружаемых файлов.
Если на голом PHP:
На клиенте количество можно отловить так:
Код:

var numFiles = $('#files')[0].files.length; // #files – id поля формы

На сервере – через подсчет количества элементов в $_FILES:
PHP код:
$NUM_FILES count($_FILES['files']['tmp_name']); // files – имя поля формы 
2. Файлы загружаются по очереди, так что в контексте вопроса имеет значение только размер каждого файла в отдельности, а не суммарный.
Andkorol вне форума   Ответить с цитированием
Старый 16.02.2018, 19:16   #3
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 270
Репутация: 10
По умолчанию

$NUM_FILES = count($_FILES['files']['tmp_name']); // files – имя поля формы

Этот вариант возвращает 20 всегда, хоть 30 файлов выбрал, то есть потолок - не отображает реальное количество выбранных файлов как на скрине. На сервере отловить хотел.

Голым php хочу понять как сделать.

Последний раз редактировалось a.n.o.n.i.m; 16.02.2018 в 19:21.
a.n.o.n.i.m вне форума   Ответить с цитированием
Старый 16.02.2018, 20:05   #4
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 270
Репутация: 10
По умолчанию

Видать это проблематичный вопрос, на который ответ мало кто знает))
a.n.o.n.i.m вне форума   Ответить с цитированием
Старый 16.02.2018, 22:29   #5
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,269
Репутация: 1064
По умолчанию

Цитата:
Сообщение от a.n.o.n.i.m Посмотреть сообщение
На сервере отловить хотел.
Голым php хочу понять как сделать.
Цитата:
Сообщение от a.n.o.n.i.m Посмотреть сообщение
Видать это проблематичный вопрос, на который ответ мало кто знает))
Да нет тут никакой проблемы, я ж дал уже ответ.
На сервер приходит то, что уже отправилось из формы.
То, что ты хочешь сделать – нужно делать на клиенте.
Вот наглядный, рабочий пример:
Код:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<form>
    <input type="file" name="files[]" multiple="multiple" id="files"><br>
    <button type="button" id="btn">Send</button>
</form>

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('#btn').click(function(){
            alert($('#files')[0].files.length);
        });
    });
</script>

Andkorol вне форума   Ответить с цитированием
Старый 17.02.2018, 16:07   #6
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 270
Репутация: 10
По умолчанию

О чудно, спасибо, увы с js пока проблемы с синтаксисом, как там делается ограничение, что если выбрано больше 20 файлов,то скажет что нельзя больше 20 и не переходить к выполнению скрипта пхп, иначе выполнить скрипт пхп?
a.n.o.n.i.m вне форума   Ответить с цитированием
Старый 17.02.2018, 16:22   #7
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,269
Репутация: 1064
По умолчанию

Слишком много халявы будет для одного топика
Выходные – это отличная возможность подучить базовый синтаксис JS.
Andkorol вне форума   Ответить с цитированием
Старый 17.02.2018, 17:49   #8
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 270
Репутация: 10
По умолчанию

Хорошо.

Код:

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('#btn').click(function(){
            var count = $('#files')[0].files.length;
            if(count > 20)//
            {
                alert("Максимлаьно количество файлов для разовой нагрузки: 20. Вы выбрали: " + $('#files')[0].files.length + " файлов. Пожалуйста повторите попытку.");
                return false;
            }
        });
    });
</script>

a.n.o.n.i.m вне форума   Ответить с цитированием
Старый 17.02.2018, 17:59   #9
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,269
Репутация: 1064
По умолчанию

Надо бы добавить else и отправку формы.
Andkorol вне форума   Ответить с цитированием
Старый 17.02.2018, 18:26   #10
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 270
Репутация: 10
По умолчанию

Ну кнопка запускает скрипт пхп если до 20 файлов, я этого и добивался. А иначе говорит что много выбрал, и ничего не происходит.
a.n.o.n.i.m вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему уменьшился максимальный размер загружаемых файлов? Вадим Мошев О форуме и сайтах клуба 1 03.08.2013 22:51
Лимит для загружаемых фотох на пикселах FeGan JavaScript, Ajax 0 03.12.2011 20:31
Как убрать путь загружаемых файлов в плеере плеером) Avelhar Мультимедиа в Delphi 3 02.06.2011 15:44
Инициализация загружаемых компонент Oburec Компоненты Delphi 0 12.07.2009 19:04
Имена загружаемых файлов на кириллице krok PHP 3 05.12.2008 11:42


18:03.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru