Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2012, 14:22
Интересующийся
Отправить личное сообщение для kliver Посмотреть профиль Найти все сообщения от kliver
 
Регистрация: 07.05.2012
Сообщений: 27

Загрузка файлов на сервер: jquery и Commons File Upload
Собственно как организовать это? Сервлет у меня уже есть. А вот клиента нет. Перепробовал с десяток библиотек, но ничего не получилось. То кнопка загрузки тупо не отображается в jsp то сервлет не видят. Великие умы подскажите.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2012, 14:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

kliver,
Эта библиотечка не плохая
http://code.google.com/p/mytardis/so...c=svn503&r=503

Требует swfobject/2.2/swfobject.min.js
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2012, 14:57
Интересующийся
Отправить личное сообщение для kliver Посмотреть профиль Найти все сообщения от kliver
 
Регистрация: 07.05.2012
Сообщений: 27

А как ей пользоваться?
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2012, 14:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от kliver
А как ей пользоваться?
http://qps.ru/z3lWY
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2012, 15:09
Интересующийся
Отправить личное сообщение для kliver Посмотреть профиль Найти все сообщения от kliver
 
Регистрация: 07.05.2012
Сообщений: 27

Но у меня Ява не пхп.
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2012, 17:15
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

kliver,
Не понял ...
На клиенте - ява-Скрипт - на сервере PHP
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2012, 17:21
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

без флеш http://jquery.malsup.com/form/#file-upload
Ответить с цитированием
  #8 (permalink)  
Старый 29.06.2012, 08:54
Интересующийся
Отправить личное сообщение для kliver Посмотреть профиль Найти все сообщения от kliver
 
Регистрация: 07.05.2012
Сообщений: 27

Deff,
На клиенте ЯваСкрипт на сервере Ява.

В общем у меня заработал вот такой код. Но он страшен как ночь.

var req;

		function ajaxFunction()
		{
			var url = "Upload_Servlet";
			
			if (window.XMLHttpRequest) // Non-IE browsers
			{ 
				req = new XMLHttpRequest();
				req.onreadystatechange = processStateChange;

				try 
				{
					req.open("GET", url, true);
				} 
				catch (e) 
				{
					alert(e);
				}
				req.send(null);
			} 
			else if (window.ActiveXObject) // IE Browsers
			{ 
				req = new ActiveXObject("Microsoft.XMLHTTP");
			
				if (req) 
				{
					req.onreadystatechange = processStateChange;
					req.open("GET", url, true);
					req.send();
				}
			}
		}

		function processStateChange()
		{
			/**
			 *	State	Description
			 *	0		The request is not initialized
			 *	1		The request has been set up
			 *	2		The request has been sent
			 *	3		The request is in process
			 *	4		The request is complete
			 */
			if (req.readyState == 4)
			{
				if (req.status == 200) // OK response
				{
					var xml = req.responseXML;

					// No need to iterate since there will only be one set of lines
					var isNotFinished = xml.getElementsByTagName("finished")[0];
					var myBytesRead = xml.getElementsByTagName("bytes_read")[0];
					var myContentLength = xml.getElementsByTagName("content_length")[0];
					var myPercent = xml.getElementsByTagName("percent_complete")[0];

					// Check to see if it's even started yet
					if ((isNotFinished == null) && (myPercent == null))
					{
						document.getElementById("initializing").style.visibility = "visible";

						// Sleep then call the function again
						window.setTimeout("ajaxFunction();", 100);
					}
					else 
					{
						document.getElementById("initializing").style.visibility = "hidden";
						document.getElementById("progressBarTable").style.visibility = "visible";
						document.getElementById("percentCompleteTable").style.visibility = "visible";
						document.getElementById("bytesRead").style.visibility = "visible";

						myBytesRead = myBytesRead.firstChild.data;
						myContentLength = myContentLength.firstChild.data;

						if (myPercent != null) // It's started, get the status of the upload
						{
							myPercent = myPercent.firstChild.data;
				
							document.getElementById("progressBar").style.width = myPercent + "%";
							document.getElementById("bytesRead").innerHTML = myBytesRead + " of " + 
								myContentLength + " bytes read";
							document.getElementById("percentComplete").innerHTML = myPercent + "%";
			
							// Sleep then call the function again
							window.setTimeout("ajaxFunction();", 100);
						}
						else
						{
							document.getElementById("bytesRead").style.visibility = "hidden";
							document.getElementById("progressBar").style.width = "100%";
							document.getElementById("percentComplete").innerHTML = "Done!";
						}
					}
				}
				else
				{
					alert(req.statusText);
				}
			}
		}


Но У меня еще один вопрос, как организовать обновление контейнера с контентом по окончанию загрузки? Когда я отправлял запросы к jsp страницам то делал так

$.post(
			 	"deletePoly.jsp",
			 	{ids:ch.toString()},
			   function(per){
			  $("#WRAPlist").load("listing.jsp");
				}
			  );


Но как в данном случае перезагрузить контейнер? Куда вставлять строку $("#WRAPlist").load("listing.jsp");?
Ответить с цитированием
  #9 (permalink)  
Старый 29.06.2012, 11:56
Интересующийся
Отправить личное сообщение для kliver Посмотреть профиль Найти все сообщения от kliver
 
Регистрация: 07.05.2012
Сообщений: 27

Я сделал вот так

setTimeout(function(pt){$('#WRAPlist').load('listing.jsp')}, 5000);


Обновление контейнера происходит. Но Таймаут это не выход. как получить данные от сервера и после их получения запустить обновление?
Ответить с цитированием
  #10 (permalink)  
Старый 29.06.2012, 12:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

kliver,
По идее вот эти строки
//
						{
							document.getElementById("bytesRead").style.visibility = "hidden";
							document.getElementById("progressBar").style.width = "100%";
							document.getElementById("percentComplete").innerHTML = "Done!";
						}

Успешное окончание загрузки
Тут и суёте в конец своё setTimeout(function(pt){$('#WRAPlist').load('listi ng.jsp')}, 10);
10 ms необходимо, чтобы .load запускался вне XMLHttpRequest,
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файлов (ajax jquery) q13m jQuery 3 08.03.2012 19:18
jQuery Form Plugin - file upload IgorN jQuery 3 22.02.2011 15:17
Загрузка файлов на чужой сервер LA_ AJAX и COMET 1 15.10.2010 20:15
загрузка джаваскрипта file by file с номером ревизии(последней) в урле для файла sergdev Ваши сайты и скрипты 7 13.04.2010 10:52
jQuery multi file upload УБИВАЕТ explorer gagagogo jQuery 5 07.08.2009 09:43