Загрузка файла в модальное окно AJAX (лифт) - PullRequest
3 голосов
/ 11 августа 2011

Кому-нибудь удалось создать загрузку рабочего файла в модальном окне AJAX в лифте?Я попытался использовать что-то вроде этого:

ajaxForm(
    bind("upload", template,
        "file" -> SHtml.fileUpload(processFile _),
        "submit" -> SHtml.ajaxSubmit("Submit", () => { 
            println("Submitted") 
            Noop
        })
    )
)

И когда я нажимаю кнопку «Отправить», функция, подключенная к кнопке, выполняется (я вижу «Отправлено» на консоли), но processFile опущена, и я не могу сделатьчто-нибудь с загруженным файлом.

Я использую List 2.3 и Scala 1.8.1.

1 Ответ

4 голосов
/ 15 октября 2012

Я думаю, что вы пересекаете свои провода здесь. SHtml.fileUpload предназначен для использования в форме для захвата FileParamHolder при отправке. Как вы знаете, это вызовет POST для вашего действия URL, который может не помочь с вашим модальным. Если вы видите пример на странице Exploring Lift для fileUpload , вы увидите использование fileUpload:

bind("e", in,
     ...
     "receipt" -> SHtml.fileUpload(fileHolder = _),
     "tags" -> SHtml.text(tags, doTagsAndSubmit))
}

Вы используете ajaxSubmit, который не отправляет форму, он просто вызывает метод на стороне сервера и возвращает JsCmd - в вашем случае println _Noop. Вот почему вы не видите никаких файлов.

Если вы хотите сделать файл в стиле ajax, выгрузите, проверьте эту ссылку , чтобы увидеть пример. Существует также рабочий пример для github здесь , который использует потрясающий jQuery File Upload плагин.

...