Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / какой метод будет вызываться после %OnSubmit? / 16 сообщений из 16, страница 1 из 1
08.12.2009, 11:37
    #36353603
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
условие задачи:
1. пользователь выбирает файл на локальной машине,
2. файл записывается на сервер,
3. потом файл отправляется на обработку серверным методом, и обязательно возвращает результат обработки в javascript-овый метод

как все эти действия сделать в "одно касание"?
какой метод будет автоматически вызываться после %OnSubmit?
...
Рейтинг: 0 / 0
08.12.2009, 17:51
    #36355036
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Ymka2007какой метод будет автоматически вызываться после %OnSubmit?
Form Submit Sequence
Zen Pages at Runtime

Файл сейчас можно загрузить только через submit: Reloading Page on Form Submit
Но можно попробовать задействовать AJAX:
AJAX file upload tutorial

Uploading local files with AJAX/Javascript to a server
...
Рейтинг: 0 / 0
09.12.2009, 16:33
    #36357061
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
спасиб
обошелся в два касания
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.02.2012, 07:31
    #37673733
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Так же не могу разобраться как выполнить определенные действия, вызвать свой метод после %OnSubmit...

Загружаю файл в диалоговом окне (%OnSubmit), при этом у формы выставлено target="upload_target" + добавлен
<iframe name="upload_target" hidden="true" /> чтобы не происходило обновление диалога (это не желательно в моем случае)
Сейчас проблема - как узнать что файл (н-р большого размера) уже загружен и как-то сообщить об этом пользователю (сообщение или label на форме)

Может быть кто-то уже разобрался?
...
Рейтинг: 0 / 0
22.02.2012, 12:08
    #37674127
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Аленочка, есть вариант с помощью плагина jQuery AjaxFileUpload ... Продолжать?
...
Рейтинг: 0 / 0
22.02.2012, 12:35
    #37674178
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Аленочка ,

Привожу пример на ZEN с аналогичным поведением примеру, который привёл doublefint (оповещение через сообщение):
КодClass sqlru.test Extends %ZEN.Component.page
{

Property isUpload As %Boolean(ZENURL = "isUpload") [InitialExpression = {$$$NO}];
Property fileName As %String(ZENURL = "fileName");
Property fileSize As %String(ZENURL = "fileSize");

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="Ajax File Upload">
  <form enctype="multipart/form-data" target="upload_target">
  <label value="Ajax File Upload" containerStyle="font-weight:bold;color:red;"/>
    <fileUpload name="file" hint="Please select a file and click Upload button"/>
    <submit caption="Upload"/>
    <iframe name="upload_target" hidden="true"/>
  </form>
</page>
}

ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
{
  #dim %response As %CSP.Response
  #dim stream As %CSP.BinaryStream=pSubmit.%GetStream("file")

  if $IsObject(stream) {
    set %response.Context("isUpload")=$$$YES
    set %response.Context("fileName")=stream.FileName
    set %response.Context("fileSize")=stream.Size
  }
  quit $$$OK
}

ClientMethod onloadHandler() [ Language = javascript ]
{
  if (zenPage.isUpload) {
    zenAlert('File Name: ',zenPage.fileName,', File Size: ',zenPage.fileSize);
  }
}

}
...
Рейтинг: 0 / 0
24.02.2012, 03:39
    #37676052
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
servit , протестировала ваше решение, но работает как-то странно, в некоторых случаях сообщение появляется, в некоторых нет..

вот к примеру для pdf-ки размером 120Мб, я сообщения так и не дождалась..
для rar'а 15Мб тоже сообщение не появилось (загружала с рабочего стола "C:\Documents and Settings\username\Рабочий стол\")
перенесла этот rar на диск С, файл загрузился + сообщение появилось.
но большие файлы с диска С так же не грузятся ...
...
Рейтинг: 0 / 0
24.02.2012, 10:41
    #37676260
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Аленочка ,

Попробовал у себя загрузить несколько раз из разных мест один из CACHE.DAT (~140Мб) - сообщение получаю стабильно.
Изначальное месторасположение файла и сложность пути роли не играют - оповещение происходит и для сетевого файла вида
Код: plaintext
"\\SERVER\Test\Tem& p\CACHE.DAT"

Файл загружается долго, поэтому скорее всего срабатывает один из таймаутов.
Попробуйте увеличить значения таймаутов в Портале, CSP-Шлюзе (сессии, таймаут ожидания ответа сервера и т.д.).

PS: для загрузки больших файлов я бы предпочёл FTP.
...
Рейтинг: 0 / 0
27.02.2012, 04:44
    #37679128
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
servit , и все-таки исходный код у меня локально не выдает сообщение, если файл грузится с:
"C:\Documents and Settings\username\Рабочий стол\123.pdf" и выдает, если грузится с "C:\123.pdf"
Файл один и тот же скопировала, размер 4Мб примерно.
...
Рейтинг: 0 / 0
27.02.2012, 04:53
    #37679131
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Может быть как-то влияют русские буквы в пути к файлу? Вроде нет..

Так например с этих адресов файл загрузился:
C:\Documents and Settings\123.pdf
N:\123.pdf (сетевой диск)

И с этого загрузился:
C:\Рабочая\123.pdf
сообщение выдается:
"File Name: C:\Рабочая\123.pdf, File Size: 4618680"

И с такого пути все ок вроде (только имя папки в сообщении кракозябрами выходит):
C:\Рабочая рабочая\123.pdf

почему же не получается с Рабочего стола загрузить..странно!
...
Рейтинг: 0 / 0
27.02.2012, 05:55
    #37679139
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Аленочкапочему же не получается с Рабочего стола загрузить..странно!
..."C:\Documents and Settings\username\Рабочий стол\123.pdf"Может username при перекодировке портится - попробуйте напрямую имя прописать в путь
...
Рейтинг: 0 / 0
27.02.2012, 08:16
    #37679173
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
username так же английскими буквами написан, не должно ничего портиться.
если конткретно, то вот такой путь у меня:
"C:\Documents and Settings\barabina_e\Рабочий стол\RSWB.pdf"
или "C:\Documents and Settings\barabina_e.000\Рабочий стол\RSWB.pdf"
и там и там - не работает...

а у вас с рабочего стола нормально грузится?
...
Рейтинг: 0 / 0
27.02.2012, 10:15
    #37679292
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Аленочкаusername так же английскими буквами написан, не должно ничего портиться.
если конткретно, то вот такой путь у меня:
"C:\Documents and Settings\barabina_e\Рабочий стол\RSWB.pdf"
или "C:\Documents and Settings\barabina_e.000\Рабочий стол\RSWB.pdf"
и там и там - не работает...

а у вас с рабочего стола нормально грузится?
Длина пути > 50 символов.
Увеличьте размер строки Property fileName As %String(ZENURL = "fileName", MAXLEN=255); и всё должно заработать.

АленочкаИ с этого загрузился:
C:\Рабочая\123.pdf
сообщение выдается:
"File Name: C:\Рабочая\123.pdf, File Size: 4618680"Какую локаль используете?
...
Рейтинг: 0 / 0
28.02.2012, 02:16
    #37681343
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
servit, локаль RUW8
в браузере (IE8) выставлен Русский [ru]
а что это как-то влияет на "кракозябры"?

>>Длина пути > 50 символов
..Спасибо! Об этом как-то сразу не подумалось, а ведь действительно так и есть.
Сейчас любые файлы загружает и откуда угодно, получилось даже загрузить файл ок.200Мб :)
...
Рейтинг: 0 / 0
28.02.2012, 15:42
    #37682385
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
Аленочкаservit, локаль RUW8
в браузере (IE8) выставлен Русский [ru]
а что это как-то влияет на "кракозябры"?То есть используется 8-битная версия. Будет "проблематично" использовать сложные названия файлов, такие как: "СУБД Caché cool.بسم الله الرحمن الرحيم.zip".

Попробуйте поменять кодировку страницы :
Class sqlru.test Extends %ZEN.Component.page
{
  Parameter CHARSET = "utf-8";
...
}
...
Рейтинг: 0 / 0
29.02.2012, 01:40
    #37683399
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой метод будет вызываться после %OnSubmit?
servitПопробуйте поменять кодировку страницы :
Class sqlru.test Extends %ZEN.Component.page
{
  Parameter CHARSET = "utf-8";
...
}

супер! помогло :)
большое спасибо.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / какой метод будет вызываться после %OnSubmit? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]