SpringMVCにファイルをアップロードする3つの方法、コードをアップロードするだけで、一目でわかります
フロントデスク:
<%@ page Language = "Java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> < "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <タイトル>タイトル</head> <body> <body> <body> <body> <body> <body> <body> <body> <body> <body> <body> <body> <body> action = "/springmvc006/fileupload" method = "post" enctype = "multipart/form-data"> <h1>ストリーミングを使用したアップロードファイル</h1> <入力タイプ= "ファイル" name = "file"> <入力タイプ= "送信"値= "upload" // form> <form2 "/springmvc006/" methc006/"methc006/" methc006/"methc006/" methc006/fileupload2 "post"/springmvc006/ enctype = "multipart/form-data"> <h1> file.transferメソッドを使用してファイルをアップロード</h1> <入力タイプ= "file" name "=" file "> <input type =" submit "value =" upload "/> </form name =" form2 "action ="/springupload "" post "" post "/springupload" "post" enctype = "multipart/form-data"> <h1> spring mvc </h1> <入力タイプ= "file" name = "file"> <input type = "balue =" upload "/> </form> </body> </html>
構成:
<! - マルチパートファイルアップロード - > <bean id = "multipartresolver"> <プロパティ名= "maxuploadsize" value = "104857600" /> <プロパティ名= "Maxinmemorysize" value = "4096" /> <プロパティ名= "
舞台裏:
方法1:
/** Streamを介してファイルをアップロード* @RequestParam( "ファイル")name = file Controlによって取得したファイルをCommonsMultipartFileオブジェクトにカプセル化します*/@RequestMapping( "Fileupload")public String fileupload(@RequestParam( "ファイル")commonsMultipartFileファイル) starttime = system.currenttimemillis(); system.out.println( "filename:"+file.getoriginalFileName()); try {//出力ストリームを取得しますoutputStream os = new fileoutputStream( "e:/"+new date()。getTime()+file.getoriginalFileName()); //入力ストリームを取得して、commonsmultipartfileを取得してファイルのストリームを直接取得しますinputstream is = file.getInputStream(); int temp; //(temp = is.read())!=( - 1)){os.write(temp); } os.flush(); os.close(); is.close(); } catch(filenotfoundexception e){// dodo auto-enerated catch block e.printstacktrace(); } long endtime = system.currenttimemillis(); System.out.println( "方法1の実行時間:"+string.valueof(endtime-starttime)+"ms"); 「/成功」を返します。 }方法2:
/** file.transtoを使用してアップロードされたファイルを保存*/ @requestMapping( "fileupload2")public string fileupparam( "file")commonsmultipartfileファイル){long starttime = system.currenttimemillis(); system.out.println( "filename:"+file.getoriginalFileName()); string path = "e:/"+new date()。gettime()+file.getoriginalfilename();ファイルnewFile = new File(PATH); // commonsmultipartfileメソッド(今回は注意)file.transferto(newFile)を介してファイルを直接書き込みます。 long endtime = system.currenttimemillis(); System.out.println( "方法2の実行時間:"+string.valueof(endtime-starttime)+"ms"); 「/成功」を返します。 }方法3:
/**Springが提供するファイルをアップロードする方法を使用*/ @RequestMapping( "Springupload")public String springupload(httpservletrequest request)thres IllegalStateException、ioexception {long starttime = system.currenttimemillis(); //現在のコンテキストをcommonsmutipartresolver(Multipart Parser)commonsMultipartresolver Multipartresolver = new CommonsMultipartresolver(request.getSession()。getServletContext()); // enctype = "multipart/form-data"があるかどうかを確認しますif(multipartresolver.ismultipart(request)){//要求をMultiparthttpservletrequest multirequest =(multiparthttpservletrequest)request; // MultireQuest Iterator Iter = MultireQuest.getFileNames()ですべてのファイル名を取得します。 while(iter.hasnext()){//すべてのファイルを一度に1を融合しますMultipartFileファイル= multirequest.getFile(iter.next()。toString()); if(file!= null){string path = "e:/springupload"+file.getoriginalfilename(); // file.transferto(new file(PATH))をアップロードします。 }}} long endtime = system.currenttimemillis(); System.out.println( "方法3の実行時間:"+string.valueof(endtime-starttime)+"ms"); 「/成功」を返します。 }テストのアップロード時間を見てみましょう。
4Mファイルを初めて使用したとき:
ファイル名:test.rar
方法1実行時間:14712ms
ファイル名:test.rar
方法2実行時間:5ms
方法3実行時間:4ms
2回目:50mファイルを使用します
メソッドの進捗は非常に遅く、5分かかります。
方法2実行時間:67ms
方法3実行時間:80ms
テスト結果から、SpringMVCを使用してファイルをアップロードする方法がはるかに高速であることがわかります!
テスト2の結果:メソッド3を1つずつ検索する必要があるため、遅くする必要があります。しかし、一般的に言えば、より多くの方法を提供できるので、方法3があります
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。