Показать сообщение отдельно
  #1 (permalink)  
Старый 27.10.2014, 13:07
Новичок на форуме
Отправить личное сообщение для jqjs Посмотреть профиль Найти все сообщения от jqjs
 
Регистрация: 27.10.2014
Сообщений: 2

Загрузка файлов на другой сервер
Добрый день.

Прошу вашей помощи по теме загрузки файлов. Сначала опишу задачу, а потом приведу список того, что пробовал.

Задача: Есть 2 сервера domain.ru и static.domain.ru, первый непосредственно генерирует код страницы, на втором хранится статическая информация (css, картинки, js). Решил добавить функцию загрузки картинок пользователями, способов много, поэтому на всякий случай решил посоветоваться.

Дано:
<iframe name="uploader" style="display:none;"></iframe>
<form name="visibleFrm" target="uploader" action="//static.domain.ru" method="post" enctype="multipart/form-data">
<input name="img" type="file" />
</form>


Тут всё просто, загружаем файл на второй сервер через скрытый фрейм.

Загвоздка:
После загрузки в зависимости от результата (файл загружен или какая-нибудь ошибка), необходимо сделать запрос на 1 сервер с командой добавить картинку в базу, и вывести форму для добавления комментария к изображению. Реализаций масса: iframe onload, header, script, но какой из них придерживаться? Начинаю плутать когда получаю от iframe результат img7777(новое имя файла) или error-text(текст сообщения об ошибке), как это рациональнее сделать, подскажите пожалуйста.

Что сделано:
static.domain.ru в фрейм при успешной загрузке отвечает 1234(новое имя картинки) или "Текст ошибки". Знаю как вывести полученную картинку на родительскую сраницу, без перезагрузки и добавить поле для комментария с кнопкой сохранить. Не знаю: Как обработать полученный результат. Знаю как получить текст iframe, не знаю в какой момент это сделать, по какому событию, ведь какое-то время займёт сама загрузка файла.

Делал так:
function submitButtonClck()
{
   visibleFrm.submit();
   var result_text = document.getElementById('frm').contentDocument.body.innerHTML
   if(isNan(result_text))
   {
       alert('Текст ошибки')
   }
   else
   {
       // Выводим загруженную картинку и поле для добавления комментария
   }
}

Последний раз редактировалось jqjs, 27.10.2014 в 13:20.
Ответить с цитированием