スプリングブートの背景にファイルをアップロードしてダウンロードする方法は?
最近のプロジェクトには、ファイルのアップロードとダウンロードが含まれていました。フロントエンドアップロードでは、Baidu Webuploaderプラグインを使用します。このプラグインの使用はまだ調査中であり、将来的に整理され、記録されます。この記事では、主にファイルのアップロードとダウンロードの処理をSpringbootの背景に紹介します。
単一のファイルアップロード
// single file upload @RequestMapping(value = "/upload")@ResponseBodyPublic String Upload(@RequestParam( "file")multipartfile file){try {if(file.isempty()){return "file is veatt"; } //ファイル名を取得する文字列filename = file.getoriginalFileName(); logger.info( "アップロードされたファイル名は:" + filename); //ファイルの接尾辞名を取得するsuffixname = filename.substring(filename.lastindexof( "。")); logger.info( "ファイルの接尾辞名は" + suffixName); //ファイルストレージパス文字列filepath = "d:// aim //";文字列パス= filepath + filename + suffixName;ファイルdest = new file(path); //ディレクトリが存在するかどうかを検出するかどうかを検出します} catch(IllegalStateException e){e.printstacktrace(); } catch(ioexception e){e.printstacktrace(); } "upload failed"を返します;}ファイルパスとファイル名を変更する場合は、FilePathとFilenameを変更するだけです。
複数のファイルアップロード
// Multi-File upload @RequestMapping(value = "/uploadmore"、method = requestmethod.post)@responsebodypublic string handlefileupload(httpservletfile> files =(((multiparthtttpservletrequest)request).getfiles( "file"); MultiPartFileファイル= null; BufferedOutputStream stream = null; for(int i = 0; i <files.size(); ++ i){file = files.get(i); string filepath = "d:// aim //"; if(!file.isempty()){try {byte [] bytes = file.getBytes(); Stream = new BufferedOutputStream(new FileOutputStream(new file(filepath + file.getoriginalFileName())); } catch(例外e){stream = null; return "th" + i + "ファイルアップロードfailed ==>" + e.getMessage(); }} else {"th" + i + "を返してください。ファイルが空になっているためにアップロードが失敗しました"; }} "uploaded sucessに"を返します ";}ファイルのダウンロード
//ファイルダウンロード関連コード@RequestMapping( "/download")public string downloadfile(httpservletrequest request、httpservletresponse response){string filename = "aim_test.txt"; //ファイル名を設定し、ファイル名を設定し、ビジネスニーズに応じてダウンロードするファイル名を置きます。新しいファイル(RealPath、Filename); if(file.exists()){respons.setContentType( "Application/Force-DownLoad"); // response.addheaderを開くことなく強制ダウンロードを設定します( "content-disposition"、 "attachment; filename =" + filename); // file name byte [] buffer = new byte [1024]; fileinputStream fis = null; bufferedinputStream bis = null; try {fis = new fileinputStream(file); bis = new BufferedInputStream(FIS); outputStream os = response.getOutputStream(); int i = bis.read(buffer); while(i!= -1){os.write(buffer、0、i); i = bis.read(buffer); } system.out.println( "success"); } catch(Exception e){e.printstacktrace(); }最後に{if(bis!= null){try {bis.close(); } catch(ioexception e){e.printstacktrace(); }} if(fis!= null){try {fis.close(); } catch(ioexception e){e.printstacktrace(); }}}}} return null;}MultiPartConfig構成
MultipartConfig Configurationクラスを使用して、ファイルのアップロードをグローバルに制御できます。
@configurationPublic Class MultipartConfig {@Bean Public MultipartConfigelement MultipartConfigelement(){MultiPartConfigFactory = new MultiPartConfigFactory(); //ファイルサイズの制限を設定します。ページがこのサイズを超えると、例外情報がFactory.setMaxFilesize( "2MB")がスローされます。 // KB、MB //アップロードされたデータ合計サイズの合計サイズFactory.setMaxRequestSize( "20MB"); //ファイルを設定する一時フォルダーパス// factory.setlocation( "e:// test //"); //ファイルがこの値よりも大きい場合、ファイルとして保存されます。この値よりも少ない場合、ファイルはメモリに保存されます。デフォルトは0 // Factory.setMaxRequestSize(0)です。 Factory.createmultipartconfig()を返します。 }}注意すべきこと
フロントエンドとバックエンドのファイル転送形式は、MultiPart/Form-Dataである必要があります
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。