1
我正在使用Dropwizard 0.7.0構建用於文件上傳的API。無法驗證上傳的文件大小限制。我想文件寫入到磁盤如何查找通過Dropwizard REST API上傳的文件的大小
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
public Response uploadFile(@Context final HttpServletRequest request, @FormDataParam("file") FormDataBodyPart fileBodyPart) {
/*
* Check the request size
*/
request.getPart("file").getSize();
.........
}
它拋出一個錯誤之前檢查大小:
java.lang.IllegalStateException: No multipart config for servlet
at org.eclipse.jetty.server.Request.getParts(Request.java:2075) ~[jetty- server-9.0.7.v20131107.jar:9.0.7.v20131107]
at org.eclipse.jetty.server.Request.getPart(Request.java:2055) ~[jetty-server-9.0.7.v20131107.jar:9.0.7.v20131107]
編輯------------------ ----
@大衛
升級到0.8.0 dropwizard然而跑進另一個錯誤
com.sun.jersey.spi.inject.Errors: The following errors and warnings have been detected with resource and/or provider classes:
org.glassfish.jersey.media.multipart.file.FormDataBodyPart
org.glassfish.jersey.media.multipart.file.FileDataBodyPart
org.glassfish.jersey.media.multipart.FormDataContentDisposition
使用這些依賴
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-forms</artifactId>
<version>${dropwizard.version}</version>
</dependency>
和
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.23.2</version>
</dependency>
加入
bootstrap.addBundle(new MultiPartBundle());
和這個太(後第一次失敗)
env.jersey().register(MultiPartFeature.class);
我在這裏錯過了什麼?
我需要使用0.7.0版本和依賴到位 com.sun.jersey.contribs 球衣,多 1.18.1 即使大小檢查不能執行,我可以上傳一個文件。我試圖在過濾器中設置多部分配置元素。 final MultipartConfigElement MULTI_PART_CONFIG = new MultipartConfigElement(「」,102400,-1L,-1); ServletRequest.setAttribute(Request .__ MULTIPART_CONFIG_ELEMENT,MULTI_PART_CONFIG); –
Manohar
觀察一些事情FormDataContentDisposition.getSize()返回-1添加一個多部分配置元素的過濾器會產生一個錯誤java.io.IOException:缺少多部分請求的內容 \t at org.eclipse.jetty.util.MultiPartInputStreamParser.parse( MultiPartInputStreamParser.java:494) \t在org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:402) \t在org.eclipse.jetty.server.Request.getParts(Request.java:2083) \t在org.eclipse.jetty.server.Request.getPart(Request.java:2055) – Manohar