SpringMVCのデフォルトパーサーには、ファイルアップロード用のパーサーは含まれていません。 SpringMVCを使用してファイルをアップロードする場合、SpringMVCが提供するMultiPartresolver宣言を使用する必要があります。 CommonsMultiPartresolverはMultiPartresolverインターフェイスを実装するため、次のようにSpringMVC構成ファイルで構成できます。
<bean id = "multipartresolver"> <プロパティ名= "defaultencoding" value = "utf-8" /> <プロパティ名= "value =" 10485760000 " /> <プロパティ名=" maxinmemorysize "value =" 40960 " /> < /bean> <
まず、ファイルのアップロードに必要なパッケージを紹介します。コモンズロギング - *。JarCommons-Io-*。JarCommons-Fileupload-*。Jar
新しいJSPページを作成します。
<%@ page Language = "Java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! <html> <head> <メタhttp-equiv = "content-type" content = "text/html; charset = utf-8"> <title> file upload </title> </head> <body> <% - <form action = "user/fileupload" method = "post" enctype = "bultipart/filuad"> < method = "post" enctype = "multipart/form-data"> <input type = "file" name "name =" fileupload "/> <input type =" value = "upload"/> </form> </body> </html> </html>
SpringMVCアップロードファイルには多くの形式があります。ここでは、2つのタイプを紹介します。
最初のタイプ、コントローラーを見てください
パッケージgd.hz.springmvc.controller; java.io.fileをインポートします。 java.io.ioexceptionをインポートします。 org.springframework.stereotype.controllerをインポートします。 org.springframework.web.bind.annotation.requestmappingをインポートします。 org.springframework.web.bind.annotation.RequestMethodをインポートします。 Import org.springframework.web.bind.annotation.RequestParam; Import org.springframework.web.multipart.commons.commonsmultipartfile; Import org.springframework.web.servlet.modelandview; @controller( "usercontroller")@requestmapping( "user")public class usercontroller {//プロセスファイル@requestmapping(value = "fileupload"、method = requestmethod.post)public modelandview fileupload(@requestparam( "fileupload")commonsupload ")commonsmultipartfile fileupparam(") System.out.println(file.getContentType()); //ファイルサイズSystem.out.println(file.getSize())を取得します。 // file name system.out.println(file.getoriginalFileName())を取得します。 //(!file.isempty()){string path = "d:/" + file.getoriginalfilename();ファイルlocalfile = new file(path); try {file.transferto(localfile); } catch(IllegalStateException e){e.printstacktrace(); } catch(ioexception e){e.printstacktrace(); }} new ModelandView( "dataSuccess")を返します。 }}CommonsMultiPartFileクラスは、ファイルを処理するための多くの方法を提供します。たとえば、ファイルサイズ、ファイル名のアップロード、ファイルタイプ、および特定の使用法など、Springのドキュメントを表示できます。転送されたファイルを指定された場所に出力します。
ファイルアップロードの2番目の方法、この方法はより一般的に使用されます。
パッケージgd.hz.springmvc.controller; java.io.fileをインポートします。 java.io.ioexceptionをインポートします。 java.util.iteratorをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 org.springframework.stereotype.controllerをインポートします。 org.springframework.web.bind.annotation.requestmappingをインポートします。 org.springframework.web.bind.annotation.RequestMethodをインポートします。 Import org.springframework.web.multipart.multipartfile; Import org.springframework.web.multipart.multiparthttpservletrequest; Import org.springframework.web.multipart.commons.commonsmultipartresolver; @controller( "usercontroller")@requestmapping( "user")public class usercontroller {//プロセスファイルアップロード2 @requestmapping(value = "fileupload2"、method = requestmethod.post)public string fileupload2(httpservletrequest requestice commonsMultiPartresolver MultiPartresolver = new CommonsMultiPartresolver(request.getSession()。getServletContext()); // formがenctype = "multipart/form-data"を持っているかどうかを確認します(multipartresolver.ismultipart(request)){multiparthttpservletrequest multirequest =(multiparthttservletrequest)request; iterator <string> iter = multirequest.getFileNames(); while(iter.hasnext()){// commonsmultipartfileから継承され、上記の方法を所有しています。 MultiPartFile file = multirequest.getFile(iter.next()); if(file!= null){string filename = "demoupload" + file.getoriginalFileName(); string path = "d:/" + filename;ファイルlocalfile = new file(path); file.transferto(localfile); }} "dataSuccess"を返します。 }}MultiParthTTPSERVLETREQUESTは、複数のファイルとファイル名を取得できる、より柔軟なメソッドを提供し、各ファイルを取得するためにトラバースできます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。