2015-01-03 33 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是内部挂毯运行: