2011-08-10 19 views
3

有沒有人設法在AJAX模式窗口中創建工作文件上傳?我試圖用這樣的:AJAX模式窗口中的文件上傳(電梯)

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

當我按下「提交」執行連接按鈕按鈕功能(我看到控制檯「已提交」),但省略processFile,我不能做上傳的文件進行任何操作。

我使用List 2.3和Scala 1.8.1。

回答

4

我認爲你在這裏穿過你的電線。 SHtml.fileUpload旨在在表單中用於在提交時捕獲FileParamHolder。正如你所知道的那樣,這會導致一個POST到你的動作URL,這可能無助於你的模態。如果你看到了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插件。