2011-10-06 48 views
3

我有一個寧靜的界面,如下所示。 我試圖用JAXRS接口上傳圖片,但我當我要求使用這種形式面臨着一個錯誤寧靜的圖像上傳異常

@POST 
     @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
     @Path("createUserphotoDirectory/{userid}/{serverName}") 
     @Consumes("multipart/form-data") 
     public String createUserDirectory(@PathParam("userid") Long userid, 
        @PathParam("serverName") String serverName, 
        MultipartFormDataInput input) { 
       System.out.println("1"); 
       photoService.createServerImages(userid,serverName,input); 
       return responseMessageSource.getMessage("SUCCESSFULL_CRATED_ALBUM",null,null); 
      } 

<html> 
<body> 
    <h1>JAX-RS Upload Form</h1> 

    <form action="/AlbumApplication/rest/createUserphotoDirectory/1/FeedServer" method="post" enctype="multipart/form-data"> 

     <p> 
     Select a file : <input type="file" name="uploadedFile" size="50" /> 
     </p> 

     <input type="submit" value="Upload It" /> 
    </form> 

</body> 
</html> 

我得到這個錯誤 - 客戶端發送的請求是語法不正確(java.lang.RuntimeException: Could find no Content-Disposition header within part).


我忘了寫,我使用在用SpringMVC MVC側,其可以屬於彈簧MVC塊?

+0

你能提供從服務器堆棧跟蹤或其他錯誤日誌?另外,http://stackoverflow.com/questions/6137444/resteasy-and-fileupload-get-no-content-disposition-error可能是相關的。 – mpierce

+0

當我從html頁面提交時,它不會進入服務內部(java.lang.RuntimeException:在部分內部找不到Content-Disposition標頭)。這個錯誤沒有堆棧跟蹤或日誌 –

回答

2

更改REST服務簽名下面可能解決您的問題

public String createUserDirectory(@PathParam("userid") Long userid, 
     @PathParam("serverName") String serverName, 
     @FormDataParam("uploadedFile") File file, 
     @FormDataParam("uploadedFile") FormDataContentDisposition disposition) { 
+0

謝謝你的回覆,但FormDataContentDisposition類是球衣裏面,我們的項目正在與jax-rs一起工作,我們不能使用球衣和jaxrs在一起,因爲2個jar是craching謝謝 –

+0

是不是澤西島JAX-RS的實現?見http://wikis.sun.com/display/Jersey/Main – suat

+0

是的,你是對的,但來回使用FormDataContentDisposition我需要廣告jersey.jar當我添加這個jar tomcat doesnor運行給予太多異常,當我刪除澤西運行,我不明白問題 –