「Spring MVC」MultipartHttpServletRequestでファイルアップロードを行うサンプル
構文
1.public interface MultipartHttpServletRequest extends HttpServletRequestEE, MultipartRequest
サーブレットリクエスト内のマルチパートコンテンツを処理する追加のメソッドを提供し、アップロードされたファイルにアクセスできるようにします。 実装では、パラメーターアクセス用の標準 ServletRequestEE メソッドをオーバーライドして、 マルチパートパラメーターを使用可能にする必要もあります。
2.インターフェース MultipartFile
public interface MultipartFile extends InputStreamSource
マルチパートリクエストで受信したアップロードファイルの表現。 ファイルの内容は、メモリに保存されるか、一時的にディスクに保存されます。どちらの場合でも、必要に応じて、ユーザーはファイルの内容をセッションレベルまたは永続ストアにコピーする責任があります。
操作方法
1.Javaコード
@RequestMapping(value = "/upload", method = RequestMethod.POST) public String upload(HttpServletRequest req) throws Exception { MultipartHttpServletRequest mreq = (MultipartHttpServletRequest) req; MultipartFile file = mreq.getFile("file"); String fileName = file.getOriginalFilename(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); FileOutputStream fos = new FileOutputStream(req.getSession().getServletContext().getRealPath("/") + "upload/" + sdf.format(new Date()) + fileName.substring(fileName.lastIndexOf('.'))); fos.write(file.getBytes()); fos.flush(); fos.close(); return "hello"; }
2.設定ファイル
<!-- upload settings --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="102400"></property> </bean>
3.formコード
<form action="mvc/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"><br> <input type="submit" value="submit"> </form>