2015-01-03 58 views
1

這是我在Tapestry Users郵件列表中詢問的一個跟進問題,以及Ray Nicholus回覆的問題。原來的問題:掛毯細膩的上傳器實現?

有沒有人有一個Tapestry實現處理上傳與FineUploader 5? Taha的實現(tawus.wordpress.com/2011/06/25/ajax-upload-for-tapestry/)看起來不錯,但它不適合5.0版本的Blob及其REST風格的傾向。雷人的答案

部分:

我們的設置是相當簡單的。我們註冊一個servlet來處理來自Fine Uploader的任何請求(例如傳統端點的上傳和刪除請求或S3和Azure端點的成功請求&)...
如果您有任何其他問題,我們會監控罰款在堆棧溢出-uploader標籤...

充分反應是在這裏:http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/FineUploader-implementation-tt5729640.html

這是偉大的信息,雷。我想做同樣的事情。
問:您是否使用github.com/FineUploader/server-examples/tree/master/java的UploadReceiver.java?問:你可以與我們分享你的web.xml嗎?

回答

0

回答您的問題:

問:您是否使用UploadReceiver.java從github.com/FineUploader/server-examples/tree/master/java?

這是一個基於Java的端點處理程序的起點。我的任何集成Fine Uploader的項目可能都有類似的代碼。也就是說,一個類處理請求,另一個解釋所有請求,另一個解析多部分編碼請求,這是Fine Uploader默認爲文件上傳發送的內容。所有這些類都適用於傳統端點。如果您使用Fine Uploader S3直接上傳到S3,那麼s3/S3Uploads類會更簡單一些,因爲上傳請求會直接發送到S3。

問:你可以與我們分享你的web.xml嗎?

我的任何一個集成Fine Uploader的Tapestry項目中使用的web.xml是不起眼的。我們在web.xml中註冊了ServletContextListener,其中包括將servlet類映射到相對路徑。

例如,對於在web.xml此項:

<listener> 
    <listener-class>com.mydomain.SystemInit</listener-class> 
</listener> 

我們將有一個SystemInit類實現ServletContextListener。在那裏,我們將實現一個contextInitialized方法給我們的精細上傳請求的servlet映射到這樣一個特定的路徑:

@Override 
public void contextInitialized(ServletContextEvent sce) 
{ 
    ServletContext context = sce.getServletContext(); 
    context.addServlet("FineUploaderReceiver", FineUploaderReceiver.class).addMapping("/uploads/*"); 
} 

所以上面發送到路徑上的任何請求都打的類。在設置客戶端Fine Uploader選項時請牢記這一點。

在這個servlet/receiver中,我們將檢查路徑的末尾,確定我們正在處理的Fine Uploader請求的類型。

0

不是一個完整的答案,但作爲一個便箋,它有時有利於一個tapestry庫在tapestry中運行一個servlet作爲過濾器,而不是向servlet容器中添加一個servlet。這還具有額外的好處,即servlet init-params可以通過MappedConfiguration提供。 tapestry-cometdtapestry-atmosphere都這樣做。

以下文件演示如何AtmosphereServlet是內部掛毯運行: