ダウンロードのContentType設定
2022-02-24 03:02:55
application/octet-stream --- application/force-download ---
application/x-download
// public void exportTxt(HttpServletRequest request,HttpServletResponse response,List
このメッセージヘッダである content-disposition は、メッセージの本文を記述し、受信側の表示処理動作を指定する。
このヘッダにはattachmentとinlineという2つの値があり、それぞれ保存するか直接表示するかを示している。
- 公開 ボイド download() {
- 文字列 filePath = これ .queueService.getCsvFilePathById(id); // データベースクエリから取得したダウンロードするファイルのパスだが、もちろんファイルパスを直接書いても良い。
- トライ {
- ファイル file = 新しい ファイル(filePath);
- 文字列 fileName = filePath.substring(filePath.lastIndexOf(File.separator)+) 1 ); //ファイル名を取得する
- ファイル名 = 新しい 文字列(fileName.getBytes() "UTF-8" ), "ISO8859-1" ); // UTF-8でファイル名を取り出し、ISO8859-1でエンコードします。ポップアップウィンドウのファイル名の中国語が文字化けしていないか、中国語が多すぎないか、ヘッダが150バイトの制限があるため、最大17個の中国語がサポートされていることを確認します。
- レスポンス.setContentType( application/octet-stream" ); // ブラウザにコンテンツをストリームとして出力するよう指示する
- response.addHeader( "Content-Disposition" , "attachment;filename="。 +fileName)。 /Content-Dispositionで指定されたタイプがファイル拡張子となり、ポップアップダウンロードダイアログのファイルタイプ画像はファイル拡張子に応じたものが表示されます。保存] をクリックすると、ファイル名は filename の値で、保存タイプは [コンテンツ] で設定されたものに基づいています。注:Content-Dispositionヘッダーフィールドを設定する前に、必ずContent-Typeヘッダーフィールドを設定してください。
- String len = String.valueOf(file.length())です。
- レスポンス.setHeader( "Content-Length" , len)となります。 // コンテンツの長さを設定する
- OutputStream out = response.getOutputStream();
- FileInputStream in = 新しい FileInputStream(file)。
- バイト [] b = 新しい バイト [ <スパン 1024 ];
- int n;
- 間 ((n=in.read(b))! =- 1 <スパン ){
- out.write(b, 0 , n);
- }
- in.close()を実行します。
- out.close()を実行します。
- } キャッチ (FileNotFoundException e) {。
- e.printStackTrace()を実行します。
- } キャッチ (IOExceptionのe) {。
- e.printStackTrace()を実行します。
- }
- }
// String NEW_LINE = System.getProperty("line.separator"); // try { // request.setCharacterEncoding("UTF-8"); // } catch (UnsupportedEncodingException e1) { // e1.printStackTrace(); // } // // if (faiList.size()>0) { // // export the txt file // response.setContentType("application/octet-stream"); // String fileName="repayment failed"; // try { // response.setHeader("Content-Disposition","attachment; filename=" + java.net.URLEncoder.encode(fileName, " UTF-8") // + ".txt");// export Chinese name // } catch (UnsupportedEncodingException e2) { // e2.printStackTrace(); // } // BufferedOutputStream buff = null; // StringBuffer write = new StringBuffer(); // ServletOutputStream outSTr = null; // try { // outSTr = response.getOutputStream(); // create // buff = new BufferedOutputStream(outSTr); // String tcb = "\t"; // write.append("" + tcb); // write.append("Total uploads" + sucList.size() + faiList.size() + tcb); // write.append("Total number of successful uploads" + sucList.size() + tcb); // write.append("Total number of failed uploads" + faiList.size() + NEW_LINE); // write.append("" + tcb); // write.append("UploadFailureapplicationID" +NEW_LINE); // for (BuManualRepayment model : faiList) { // write.append(model.getApplicationId() +NEW_LINE); // } // buff.write(write.toString().getBytes("UTF-8")); // buff.flush(); // buff.close(); // } catch (IOException e1) { // e1.printStackTrace(); // } finally { // try { // buff.close(); // outSTr.close(); // } catch (Exception e) { // e.printStackTrace(); // } // } // } // // }
sucList,リスト faiList) { // String NEW_LINE = System.getProperty("line.separator"); // try { // request.setCharacterEncoding("UTF-8"); // } catch (UnsupportedEncodingException e1) { // e1.printStackTrace(); // } // // if (faiList.size()>0) { // // export the txt file // response.setContentType("application/octet-stream"); // String fileName="repayment failed"; // try { // response.setHeader("Content-Disposition","attachment; filename=" + java.net.URLEncoder.encode(fileName, " UTF-8") // + ".txt");// export Chinese name // } catch (UnsupportedEncodingException e2) { // e2.printStackTrace(); // } // BufferedOutputStream buff = null; // StringBuffer write = new StringBuffer(); // ServletOutputStream outSTr = null; // try { // outSTr = response.getOutputStream(); // create // buff = new BufferedOutputStream(outSTr); // String tcb = "\t"; // write.append("" + tcb); // write.append("Total uploads" + sucList.size() + faiList.size() + tcb); // write.append("Total number of successful uploads" + sucList.size() + tcb); // write.append("Total number of failed uploads" + faiList.size() + NEW_LINE); // write.append("" + tcb); // write.append("UploadFailureapplicationID" +NEW_LINE); // for (BuManualRepayment model : faiList) { // write.append(model.getApplicationId() +NEW_LINE); // } // buff.write(write.toString().getBytes("UTF-8")); // buff.flush(); // buff.close(); // } catch (IOException e1) { // e1.printStackTrace(); // } finally { // try { // buff.close(); // outSTr.close(); // } catch (Exception e) { // e.printStackTrace(); // } // } // } // // }
-
-
- @RequestMapping( ファイル/ダウンロード")
- パブリック void fileDownload(HttpServletResponse response){...
- // ダウンロードするファイルの場所を決定するために、(ServletContext オブジェクトを介して)サイトの配置パスを取得する。
- 文字列パス = servletContext.getRealPath( "/")。
- //1.ダウンロードファイルの種類を自動的に判断するように、ファイルのContentTypeタイプを設定します。
- レスポンス.setContentType( "multipart/form-data");
- //2. ファイルヘッダを設定する:最後のパラメータはダウンロードファイルの名前を設定します(a.pdfと呼ぶ場合)。
- レスポンス.setHeader( "Content-Disposition"。 "添付ファイル;fileName="+。 "a.pdf")。
- ServletOutputStream out;
- //ファイルパスから File オブジェクトを取得します (このパスに download.pdf ファイルがあるとします)
- ファイル file = 新しいファイル(path +) "ダウンロード/" +. "download.pdf")です。
- トライ {
- FileInputStream inputStream = new FileInputStream(file)。
- //3. レスポンスでServletOutputStreamオブジェクト(out)を取得する
- out = response.getOutputStream()。
- int b = 0;
- byte[] バッファ = 新規 バイト[ 512];
- while (b ! = - 1){
- b = inputStream.read(buffer)。
- //4. 出力ストリーム(out)に書き込む
- out.write(buffer, 0,b);
- }
- inputStream.close()を実行します。
- out.close()を実行します。
- out.flush()を実行します。
- } catch (IOExceptionのe) {。
- e.printStackTrace()を実行します。
- }
- }
- オーバーライド
- パブリック void setServletContext(ServletContext servletContext) { }.
- this.servletContext = servletContext;
- }
- }
- 'hqx' => 'application/mac-binhex40' です。
- 'cpt' => 'application/mac-compactpro',
- 'doc' => 'application/msword',
- 'bin' => 'application/octet-stream'。
- 'dms' => 'application/octet-stream'。
- 'lha' => 'application/octet-stream'。
- 'lzh' => 'application/octet-stream'。
- 'exe' => 'application/octet-stream',
- 'class' => 'application/octet-stream'。
- 'so' => 'application/octet-stream'。
- 'dll' => 'application/octet-stream'。
- 'oda' => 'application/oda'。
- 'pdf' => 'application/pdf'。
- 'ai' => 'application/postscript'。
- 'eps' => 'application/postscript'。
- 'ps' => 'application/postscript'です。
- 'smi' => 'application/smil',
- 'smil' => 'application/smil'。
- 'mif' => 'application/vnd.mif',
- 'xls' => 'application/vnd.ms-excel',
- 'ppt' => 'application/vnd.ms-powerpoint',
- 'wbxml' => 'application/vnd.wap.wbxml',
- 'wmlc' => 'application/vnd.wap.wmlc',
- 'wmlsc' => 'application/vnd.wap.wmlscriptc',
- 'bcpio' => 'application/x-bcpio'。
- 'vcd' => 'application/x-cdlink',
- 'pgn' => 'application/x-chess-pgn',
- 'cpio' => 'application/x-cpio',
- 'csh' => 'application/x-csh',
- 'dcr' => 'application/x-director'。
- 'dir' => 'application/x-director'です。
- 'dxr' => 'application/x-director'です。
- 'dvi' => 'application/x-dvi',
- 'spl' => 'application/x-futuresplash',
- 'gtar' => 'application/x-gtar',
- 'hdf' => 'application/x-hdf',
- 'js' => 'application/x-javascript'。
- 'skp' => 'application/x-koan'です。
- 'skd' => 'application/x-koan'。
- 'skt' => 'application/x-koan'。
- 'skm' => 'application/x-koan'。
- 'latex' => 'application/x-latex',
- 'nc' => 'application/x-netcdf',
- 'cdf' => 'application/x-netcdf',
- 'sh' => 'application/x-sh',
- 'shar' => 'application/x-shar' です。
- 'swf' => 'application/x-shockwave-flash',
- 'sit' => 'application/x-stuffit',
- 'sv4cpio' => 'application/x-sv4cpio'。
- 'sv4crc' => 'application/x-sv4crc'。
- 'tar' => 'application/x-tar',
- 'tcl' => 'application/x-tcl',
- 'tex' => 'application/x-tex'。
- 'texinfo' => 'application/x-texinfo',
- 'texi' => 'application/x-texinfo',
- 't' => 'application/x-troff'。
- 'tr' => 'application/x-troff'です。
- 'roff' => 'application/x-troff'。
- 'man' => 'application/x-troff-man',
- 'me' => 'application/x-troff-me',
- 'ms' => 'application/x-troff-ms',
- 'ustar'=>「application/x-ustar」。
- 'src' => 'application/x-wais-source'です。
- 'xhtml' => 'application/xhtml+xml'です。
- 'xht' => 'application/xhtml+xml'です。
- 'zip' => 'application/zip'です。
- 'au' => 'audio/basic',
- 'snd' => 'audio/basic'です。
- 'mid' => 'audio/midi'です。
- 'midi' => 'audio/midi'です。
- 'kar' => 'audio/midi'です。
- 'mpga' => 'audio/mpeg'。
- 'mp2' => 'audio/mpeg'です。
- 'mp3' => 'audio/mpeg'です。
- 'aif' => 'audio/x-aiff'です。
- 'aiff' => 'audio/x-aiff'です。
- 'aifc' => 'audio/x-aiff'です。
- 'm3u' => 'audio/x-mpegurl'です。
- 'ram' => 'audio/x-pn-realaudio'です。
- 'rm' => 'audio/x-pn-realaudio'です。
- 'rpm' => 'audio/x-pn-realaudio-plugin'。
- 'ra' => 'audio/x-realaudio'です。
- 'wav' => 'audio/x-wav'となります。
- 'pdb' => 'chemical/x-pdb'。
- 'xyz' => 'chemical/x-xyz'。
- 'bmp' => 'image/bmp'。
- 'gif' => 'image/gif'。
- 'ief'=>「画像/ief」です。
- 'jpeg' => 'image/jpeg'。
- 'jpg' => 'image/jpeg' です。
- 'jpe' => 'image/jpeg',
- 'png' => 'image/png',
- 'tiff' => 'image/tiff',
- 'tif' => 'image/tiff'です。
- 'djvu' => 'image/vnd.djvu',
- 'djv' => 'image/vnd.djvu',
- 'wbmp' => 'image/vnd.wap.wbmp',
- 'ras' => 'image/x-cmu-raster',
- 'pnm' => 'image/x-portable-anymap',
- 'pbm' => 'image/x-portable-bitmap' です。
- 'pgm' => 'image/x-portable-graymap',
- 'ppm' => 'image/x-portable-pixmap',
- 'rgb' => 'image/x-rgb',
- 'xbm' => 'image/x-xbitmap',
- 'xpm' => 'image/x-xpixmap',
- 'xwd' => 'image/xwindowdump' です。
- 'igs'=>「モデル/イグス」。
- iges' => 'model/iges'です。
- 'msh' => 'model/mesh'です。
- 'mesh' => 'model/mesh'です。
- 'サイロ' => 'モデル/メッシュ',
- 'wrl' => 'model/vrml'です。
- 'vrml' => 'model/vrml'です。
- 'css' => 'text/css'です。
- 'html' => 'text/html'です。
- 'htm' => 'text/html'です。
- 'asc' => 'text/plain'です。
- 'txt' => 'text/plain'です。
- 'rtx' => 'text/richtext' です。
- 'rtf' => 'text/rtf'です。
- 'sgml' => 'text/sgml'。
- 'sgm' => 'text/sgml'です。
- 'tsv' => 'text/tab-separated-values',
- 'wml' => 'text/vnd.wap.wml',
- 'wmls' => 'text/vnd.wap.wmlscript',
- 'etx' => 'text/x-setext',
- 'xsl' => 'text/xml'です。
- 'xml' => 'text/xml'です。
- 'mpeg' => 'video/mpeg'。
- 'mpg' => 'video/mpeg'です。
- 'mpe' => 'video/mpeg'です。
- 'qt' => 'video/quicktime',
- 'mov' => 'video/quicktime' です。
- 'mxu' => 'video/vnd.mpegurl',
- 'avi' => 'video/x-msvideo',
- 'movie' => 'video/x-sgi-movie',
- 'ice' => 'x-conference/x-cooltalk'。
関連
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
ジャバアレイ
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
htmlとwordの相互変換の実装(画像あり)
-
MyBatisカスタムタイプハンドラ TypeHandler
-
MySQLIntegrityConstraintViolationException、解決方法
-
Prologでは、コンテンツは許可されていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
強制型変換について
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
Javaジェネリックを1つの記事で
-
Junitのユニットテストはjava.lang.Testを報告します。
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
セミコロン期待値エラー解決
-
maven レポート エラー 解決不可能な親POM