2012-01-24 36 views
1

我寫了這個simple Play-uploadify demo爲什麼我只能使用Play和uploadify上傳一個文件?

我想要一個上傳按鈕,每次按下它時都會自動上傳圖像。

出於某種原因,只有第一次按下按鈕,我才能上傳。按下按鈕一次後,除非我「取消」以前的上傳,否則進一步按下不會導致任何事情發生。

(我不明白與auto模式取消上傳的意義也許問題在某種意義上,我從來沒有下載「完整」?)

這裏是我的操作方法:

public static void upload(File file, long userId){ 
    System.out.println("Uploaded file name " + file.getName() + 
     " by user " + userId); 
} 

和呼叫到uploadify:

$(function() { 
    $("#uploader").uploadify({ 
     uploader : '/public/libraries/uploadify/uploadify.swf', 
     script  : '/Application/upload', 
     cancelImg : '/public/libraries/uploadify/cancel.png', 
     folder  : '/uploads', 
     fileExt  : '*.jpg;*.gif;*.png', 
     fileDesc : 'Image Files', 
     fileDataName: 'file', 
     scriptData: {userId: 123}, 
     auto: true 
    }); 
}); 

而且,上傳似乎從來沒有完成 - 當我添加一個onComplete處理程序,它ð沒有火。

回答

0

嘗試將其更改爲

script  : '/application/upload', 

(注意在應用程序中的一個小寫玩......當您使用默認路由總是產生小寫的網址。)

爲只能夠上傳一次一個文件:

您是否在dev或生產模式下測試了上傳? 在開發模式下,可以使用的線程處理量之一, 所以它只要你想在同一時刻

+0

爲什麼會這樣? – ripper234

+0

我已經更新了答案。 –

+0

我正在開發模式下工作 - 但問題似乎與播放線程無關。 Play操作方法只包含一個'println()',並立即返回。即使完成後,客戶端也無法啓動上傳另一個文件。也許我應該爲Uploadify渲染一些東西來理解我正確處理上傳? – ripper234

1

的問題是,我並沒有返回HTTP 200狀態上傳第二個文件塊代碼,因爲我沒有在我的操作方法結束時調用任何渲染方法或返回值。

添加renderText("OK");解決了我的問題。

ok();是一個更好的解決方法。

相關問題