2012-09-22 6 views
5

でこのコードを扱うには、アップロードを処理するためのRESTEasyのコードです:MultipartForm春

@Path("/fileupload") 
public class UploadService { 
    @POST 
    @Path("/upload") 
    @Consumes("multipart/form-data") 
    public Response create(@MultipartForm FileUploadForm form) 
    { 
     // Handle form 
    } 
} 

はちょうどこのようMultipartFormを扱うことができる春を使用して同様のものはありますか?ここで

答えて

2

春に変換することができますバイト配列にファイルを変換するために春を指示しているため

<form:form commandName="fileUpload" id="fileUploadForm" enctype="multipart/form-data"> 
    <form:input type="file" path="myFile" id="myFile"/> 
</form:form> 

@InitBinderコードが重要である含まれています:フォームは、次のようになります。 commons-fileuploadに依存するmultipartresolverなので、それを使用するにはビルドに組み込む必要があります。あなたのapplicationContext.xmlをお使いのコントローラで

<bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <!-- one of the properties available; the maximum file size in bytes --> 
    <property name="maxUploadSize" value="<max file size>"/> 
</bean> 

は、org.springframework.web.multipart.MultipartFileを使用しています。

@RequestMapping(method=RequestMethod.POST, value="/multipartexample") 
public String examplePost(@RequestParam("fileUpload") MultipartFile file){ 
    // Handle form upload and return a view 
    // ... 
} 
+0

MutipartFileには、要求から自動的に解析された 'path'と 'id'属性がありますか? – xybrek

+0

クライアントコンピュータのファイルへのパスと入力タグの "id"属性を参照する場合は、noと入力します。それらはまったくサーバーに送られません。 – pap

+0

Ok ...これを試してみるとうまくいけば、App Engineでうまく動作します。 – xybrek

0

あなたは春に似た何かを達成するためにMVC注釈を使用することができます方法を示す例です:

@RequestMapping(method=RequestMethod.POST, value="/multipartexample") 
public String examplePost(@ModelAttribute("fileUpload") FileUpload fileUpload){ 
    // Handle form upload and return a view 
    // ... 
} 

@InitBinder 
public void initBinder(ServletRequestDataBinder binder) { 
    binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor()); 
} 

public class FileUpload implements Serializable { 
    private MultipartFile myFile; 

    public MultipartFile getMyFile() { 
     return myFile; 
    } 

    public void setMyFile(MultipartFile myFile) { 
     this.myFile = myFile; 
    } 
} 

HTMLフォームからこのエンドポイントに投稿することができるはず、ファイル要素の名前を想定し'myFile'です。持っていることは、その後MultipartFile