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 :: FileReader JS синхронно

 PHP.SU

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


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

> Без описания
3d_killer
Отправлено: 25 Июня, 2016 - 20:19:18
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




Кусок кода читает и отображает в браузере
CODE (javascript):
скопировать код в буфер обмена
  1. var files=el[0].files;
  2. var count=files.length;
  3. for(var i=0; i<count;i++)
  4.         {
  5.                 var reader = new FileReader();
  6.                 reader.onload = function(e)
  7.                         {              
  8.                                 element.children('img').attr('src', e.target.result);  
  9.                         }
  10. reader.readAsDataURL(files[i]);
  11.         }

Написал загрузчик фото с использованием выделения области загрузки для этого клонируется серия инпутов где прописаны координаты для каждого изображения, и это все уходит постом в обработчик (ключ координат должен соответствовать ключу массива с файлами), если изображение одно то все хорошо, а если несколько то происходит такая ситуация что изображения которые я выделяю появляются не в таком порядке как приходят в обработку, соответственно обрезку которую он должен произвести на одном изображении он делает на другом.

Долго до этого доходил и в итоге понял порядок отображения зависит от того что первее загрузится, следовательно надо ожидать загрузки изображения перед загрузкой следующего, то есть делать синхронно, но как это сделать перерыл инет, но увы так и не нашел

(Отредактировано автором: 25 Июня, 2016 - 21:38:58)

 
My status
 Top
Viper
Отправлено: 25 Июня, 2016 - 20:55:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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






-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
3d_killer
Отправлено: 25 Июня, 2016 - 21:18:45
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




наверно все же не правильно, проблема заключается вот в чем:
массив файлов при загрузке нумеруется
например [0]=>1.jpg [1]=>2.jpg [2]=>3.jpg

я делаю предпросмотр и там выделяю область на всех картинках, но проблема в том что нумерация этих областей не совпадает с нусерацией файлов, ключи не соответствуют, после танцев с бубном я понял что очередность файлов в предпросмотре идет какой быстрее отразился поэтому и ищу как бы сделать синхроно дабы совпал порядок, скрин для примера
(Добавление)
получаемый массив для примера:
PHP:
скопировать код в буфер обмена
  1.  
  2. array(15) {
  3.   ["watermark"]=>
  4.   string(2) "on"
  5.   ["trumb"]=>
  6.   string(2) "on"
  7.   ["trumb_width"]=>
  8.   string(3) "200"
  9.   ["trumb_height"]=>
  10.   string(3) "200"
  11.   ["x1"]=>
  12.   array(2) {
  13.     [0]=>
  14.     string(2) "27"
  15.     [1]=>
  16.     string(1) "0"
  17.   }
  18.   ["x2"]=>
  19.   array(2) {
  20.     [0]=>
  21.     string(3) "423"
  22.     [1]=>
  23.     string(2) "44"
  24.   }
  25.   ["y1"]=>
  26.   array(2) {
  27.     [0]=>
  28.     string(3) "303"
  29.     [1]=>
  30.     string(1) "0"
  31.   }
  32.   ["y2"]=>
  33.   array(2) {
  34.     [0]=>
  35.     string(3) "699"
  36.     [1]=>
  37.     string(2) "44"
  38.   }
  39.   ["ho"]=>
  40.   array(2) {
  41.     [0]=>
  42.     string(3) "396"
  43.     [1]=>
  44.     string(2) "44"
  45.   }
  46.   ["wo"]=>
  47.   array(2) {
  48.     [0]=>
  49.     string(3) "396"
  50.     [1]=>
  51.     string(2) "44"
  52.   }
  53.   ["h"]=>
  54.   array(2) {
  55.     [0]=>
  56.     string(3) "927"
  57.     [1]=>
  58.     string(3) "660"
  59.   }
  60.   ["w"]=>
  61.   array(2) {
  62.     [0]=>
  63.     string(3) "450"
  64.     [1]=>
  65.     string(3) "450"
  66.   }
  67.   ["name_en"]=>
  68.   string(14) "site_page_load"
  69.   ["operation"]=>
  70.   string(12) "upload_files"
  71.   ["id"]=>
  72.   string(1) "1"
  73. }
  74. array(5) {
  75.   ["name"]=>
  76.   array(2) {
  77.     [0]=>
  78.     string(23) "2016-06-25_21-18-39.jpg"
  79.     [1]=>
  80.     string(18) "новости.jpg"
  81.   }
  82.   ["type"]=>
  83.   array(2) {
  84.     [0]=>
  85.     string(10) "image/jpeg"
  86.     [1]=>
  87.     string(10) "image/jpeg"
  88.   }
  89.   ["tmp_name"]=>
  90.   array(2) {
  91.     [0]=>
  92.     string(39) "G:\OpenServer\userdata\temp\php61FE.tmp"
  93.     [1]=>
  94.     string(39) "G:\OpenServer\userdata\temp\php620F.tmp"
  95.   }
  96.   ["error"]=>
  97.   array(2) {
  98.     [0]=>
  99.     int(0)
  100.     [1]=>
  101.     int(0)
  102.   }
  103.   ["size"]=>
  104.   array(2) {
  105.     [0]=>
  106.     int(107030)
  107.     [1]=>
  108.     int(942072)
  109.   }
  110. }
  111.  

в многомерных типо
["h"]=>
array(2) {
[0]=>
string(3) "927"
[1]=>
string(3) "660"
ключи должны стоять наоборот, если файлов больше то они могут вобще хаотично распологаться, вот как это победить.

может конечно потому что reader.onload = function(e){ одна функция по завершению загрузки, а эта reader.readAsDataURL(files[i]); идет отдельно то есть выполняется сразу, пробовал переставлять она вобще работать перестает
Прикреплено изображение (Нажмите для увеличения)
2016-06-25_21-18-39.jpg
 
My status
 Top
3d_killer
Отправлено: 26 Июня, 2016 - 00:19:55
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




все победил, через each перебор и принудительно расставлять ключи
 
My status
 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