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 :: скрипт показывает миниатюры перед загрузкой фото

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как сделать, чтобы скрипт показывал 5 миниатюр перед загрузкой 5 фото
veltony
Отправлено: 14 Декабря, 2013 - 11:58:41
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Добрый день уважаемые форумчане.

Есть скрипт который показывает миниатюры перед загрузкой фото на сервер.

<script type="text/javascript">
function fch(f) {
var fls = f.files;
if(!fls || !fls.length || !FileReader){return;}
var fr = new FileReader();
fr.onload = function() {
var im = new Image();
im.src = this.result;
var d = document.getElementById('imgp');
d.replaceChild(im, d.firstChild);
};
fr.readAsDataURL(fls[0]);
}
</script>



<input type="file" onchange="fch(this);" />
<div id="imgp">img</div>



Скрипт работает только для одного фото.

1.Подскажите, пожалуйста, как сделать, чтобы он работал для несколько фото?
Например 5 фото.

2.До выбора фото он показывает "img", как скрыть текст "img"?

С ув.
 
 Top
Deonis
Отправлено: 14 Декабря, 2013 - 13:06:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Пример потестить можете тут. Сам код:

CODE (html):
скопировать код в буфер обмена
  1. <input type="file" id="files" name="files[]" multiple />
  2. <div id="list"></div>

CODE (javascript):
скопировать код в буфер обмена
  1. function handleFileSelect(evt) {
  2.     var files = evt.target.files;
  3.     for (var i = 0, f; f = files[i]; i++) {
  4.         if (!f.type.match('image.*')) {
  5.             continue;
  6.         }
  7.         var reader = new FileReader();
  8.         reader.onload = (function(theFile) {
  9.             return function(e) {
  10.                 var span = document.createElement('span');
  11.                 span.innerHTML = ['<img class="thumb" src="', e.target.result,
  12.                                   '" title="', escape(theFile.name), '"/>'].join('');
  13.                 document.getElementById('list').insertBefore(span, null);
  14.             };
  15.         })(f);
  16.         reader.readAsDataURL(f);
  17.     }
  18. }
  19. document.getElementById('files').addEventListener('change', handleFileSelect, false);
 
 Top
veltony
Отправлено: 14 Декабря, 2013 - 13:11:10
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Огромное спасибо.
С ув.
 
 Top
veltony
Отправлено: 14 Декабря, 2013 - 15:13:43
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Все работает, только на сервер отправляет только одну фотографию
 
 Top
Deonis
Отправлено: 14 Декабря, 2013 - 15:51:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Поле файлов с параметром multiple создает массив файлов, посему и обрабатывать на сервере их надо как массив (напр., через цикл). К тому же, надо знать, как вы их отправляете ajax-ом или обычным способом. Если ajax, то показывайте соответствующий код.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB