1
我無法使Jersey文件上傳正常工作。使用Jersey 1.9。 InputStream在到達服務時爲空。我試過它作爲一個正常的表單提交,並作爲使用jQuery表單插件的AJAX提交,但獲得相同的結果。沒有例外記錄,這讓人感到更加沮喪。由於Jersey無法正常工作導致文件上傳
HTML表單
<form id="docCategoryForm" name="docCategoryForm" action="someAction" method="post" enctype="multipart/form-data">
Document
<input type="file" name="fileupload_name" id="fileupload_name" >
<button id="submitButton" type="submit" title="Select to search">Submit</button>
</form>
POM
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.9</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.9</version>
<scope>provided</scope>
</dependency>
的依賴層次在Eclipse中顯示mimepull.jar 1.6也越來越拉入。
REST服務
@ResourceFilters({RequestLoggingResourceFilter.class})
@POST
@Path(PATH_UPLOAD)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public MyResponseObject uploadDocument(@FormDataParam("fileupload_name") InputStream file) {
// Some code
}
如果我添加@FormDataParam(「fileupload_name」)FormDataContentDisposition fileDetail,我很好,但InputStream仍然爲空。
這是試圖上傳一個簡單的文本文件後的請求。看起來沒問題。
* Server in-bound request
> POST http://localhost:7001/webmodule/app/contmang/page/docCategory
/uploadDocument
> Host: localhost:7001
> Connection: keep-alive
> Content-Length: 209
> Accept: */*
> Origin: http://localhost:7001
> X-Requested-With: XMLHttpRequest
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36
> Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl0Uv1KBFoVtOpHto
> Referer: http://localhost:7001/webmodule/app/contmang/page/docCategory
> Accept-Encoding: gzip,deflate,sdch
> Accept-Language: en-US,en;q=0.8
> Cookie: JSESSIONID_HEARS=yWHQSpFbZnh1Jfp6hmn4xmfyxxTpybnvTTxsTykyqXzQyt207wym!-153888503
> Entity:------WebKitFormBoundaryl0Uv1KBFoVtOpHto
Content-Disposition: form-data; name="fileupload_name"; filename="test.txt"
Content-Type: text/plain
Hello, World!!
------WebKitFormBoundaryl0Uv1KBFoVtOpHto--