有没有人设法在电梯的AJAX模式窗口中创建工作文件上传?我试过用这样的东西:
ajaxForm(
bind("upload", template,
"file" -> SHtml.fileUpload(processFile _),
"submit" -> SHtml.ajaxSubmit("Submit", () => {
println("Submitted")
Noop
})
)
)
当我按下“提交”按钮时,连接到按钮的功能被执行(我在控制台上看到“已提交”),但processFile
被省略,我对上传的文件无能为力。
我正在使用List 2.3和Scala 1.8.1。
答案 0 :(得分:4)
我认为你在这里交叉。 SHtml.fileUpload旨在在Form中用于在提交时捕获FileParamHolder。如您所知,这将导致您的操作URL发布POST,这可能对您的模式没有帮助。如果您在fileUpload的Exploring Lift页面上看到该示例,您将看到fileUpload用法:
bind("e", in,
...
"receipt" -> SHtml.fileUpload(fileHolder = _),
"tags" -> SHtml.text(tags, doTagsAndSubmit))
}
你正在使用一个不发送表单的ajaxSubmit,它只是在服务器端调用一个方法并返回JsCmd - 在你的情况下是println _Noop。这就是为什么你没有看到任何文件。
如果你想做ajax样式文件上传,请查看this link以查看示例。 github here上还有一个工作示例,它使用了很棒的jQuery File Upload插件。