Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2016, 18:11
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

Ограничение размера нескольких файлов
Здравствуйте
Чтобы ограничить размер файла вложения 5мб, можно сделать так:
<input type="file" class="attach-more" onchange="attach(this)"><br>
<input type="file" class="attach-more" onchange="attach(this)"><br>
<div id="err_attach"></div>

<script type="text/javascript">
function attach(input){
	var attach_size = 5*1024*1024; //5мб
	var attach_file = input.files[0];
	if(attach_file.size > attach_size){
		$('#err_attach').html('Размер вложений ограничен 5 мб!');
		$('.attach-more').val(''); //удалить аттач, если превышен размер файла
	} 
};
</script>

Пожалуйста, подскажите, как можно сделать ограничение теме же 5мб если инпутов type=file несколько
например,
в первый инпут выбирается файл 4мб - все ОК, файл для вложения выбран
во второй инпут выбирается файл 2мб, общий размер двух файлов превышен (4+2=6), и в этом случае второй инпут должен остаться пустым
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2016, 18:40
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

На сервере проверка продублирована?
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2016, 18:49
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

Сообщение от Erolast Посмотреть сообщение
На сервере проверка продублирована?
нет, не нужно
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2016, 19:27
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
нет, не нужно
Я открою инспектор, удалю обработчик onchange на инпутах и спокойно залью пару гигов.
Либо даже не буду открывать браузер и через curl направлю /dev/urandom на сервер.

Уверен, что не нужно?
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2016, 19:49
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

Сообщение от Erolast Посмотреть сообщение
Уверен, что не нужно?
уверен
ограничение на размер делаю для того, чтобы письмо с вложением могло отправиться (почтовые сервера делают ограничения на аттач 10-20мб). Пользователь конечно может открыть инспектор и удалить обработчик onchange или инпут или всю форму, но это уже его проблемы..
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2016, 21:16
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ну ладно.

Как-то так:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>File attachment</title>
  </head>
  <body>
    <form id="files" action="/send-a-file" method="post">
      <input type="file" class="attach-more">
      <input type="file" class="attach-more">
    </form>
    
    <script>
      $("#files").bind("change", function(event) {
        var max_attachments_size_allowed = 5 * 1024 * 1024; //5мб
        var attachments_size = 0;

        $('#files input[type=file]').each(function() {
          attachments_size += this.files[0].size;
        });

        if (attachments_size > max_attachments_size_allowed) {
          $('#err_attach').html('Размер вложений ограничен 5 мб!');
          event.target.value = '';
        }
      })
    </script>
  </body>
</html>

Последний раз редактировалось Erolast, 09.07.2016 в 21:55.
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2016, 21:43
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

Erolast, у меня почему то не работает
http://www.tatuning.ru/Untitled-2.html
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2016, 21:56
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Это я неправильный код привел, забыл обработчик провесить. Уже поправил, теперь работает.
Ответить с цитированием
  #9 (permalink)  
Старый 09.07.2016, 22:14
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

Erolast, не совсем так как я хотел
сейчас, например, выбираю файл в первом инпуте размером 12мб - ограничение не срабатывает
выбираю файл 1мб во втором инпуте - ограничение сработало (12+1=13мб)
Ответить с цитированием
  #10 (permalink)  
Старый 10.07.2016, 00:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от rodiony4
но это уже его проблемы..
Это будут ваши проблемы, почта отправляется не от имени клиента, а от имени вашего хоста.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Htaccess, как запретить доступ ко всем кроме нескольких файлов eddin Серверные языки и технологии 8 18.02.2016 19:32
Nodejs, busboy, загрузка нескольких файлов, не корректно вызывается событие 'finish' master_alf AJAX и COMET 1 07.10.2014 11:08
Отсылка нескольких файлов одним post koeshiro AJAX и COMET 1 19.09.2014 15:08
Подрузка контента из нескольких файлов по клику. MasterDmx Элементы интерфейса 4 01.07.2013 10:44
Скрипт разности между средним значением размера файлов и максимумом как реализовать ratratrat Общие вопросы Javascript 1 21.12.2012 14:04