2012-03-04 3 views
1

私は、マルチパートファイルのアップロードや他のデータの受け渡しを処理できるコントローラとフォームを作成しようとしています。スプリングマルチパートアップロード

その後、
<form:form method="POST" commandName="myForm"> 

すべて罰金、もちろんの無いマルチパート取り扱い: まず私はこのような基本的な形を作りました。そして、私はこのようなのenctypeパーツを追加:

<form:form method="POST" commandName="myForm" enctype="multipart/form-data"> 

それから私のフォーム全体が台無しにされ、すべてのattribuetsがNullPointersを与えます。単純なString name属性でも機能しません。また、私は追加しました:

<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" /> 

私は本当に何が問題なのか分かりません。どんなコメントでも大いに役立ちます。事前にThnaks。

答えて

5

プロジェクトではCommonsMultipartResolverを使用しています。こんなふうになります。あなたの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="1048576000"/> 
    <property name="defaultEncoding" value="UTF-8" /> 
</bean> 

はMultipartHttpServletRequestにyoutは要求をキャスト:

public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { 
    if (!(req instanceof MultipartHttpServletRequest)) { 
     error(resp, "Invalid request (multipart request expected)"); 
     return null; 
    } 
Map<String, MultipartFile> files = ((MultipartHttpServletRequest)req).getFileMap(); 
... do thomething with the files 
+0

を私は今、ClassCastExceptionが取得していますが、私は私の問題は、私はENCTYPEを追加するときに、私のfomrが狂うことを主だと思いますなぜか、私はあなたと同じbeanを追加して作業していませんでした。 – Sorex

+1

enctypeはファイルのアップロードには必須ですが、それらを取り除くことはできません。間違ったファイルを編集したか、または "implements Controller"または何か –

+0

が実際に追加されていませんでした。もちろん、私は間違ったXMLを編集...これらの小さなエラーを取得し、それらを数時間デバッグすると嫌い... とにかく、ありがとう助け;) – Sorex