devpia.dextuploadnj.support.common
Class FileDownload
- サポートされる最小バージョン
- 1.0.0
- 最小サポート環境
- JRE 1.6
- 説明
-
FileDownloadは、物理ファイルとメモリ上に存在するデータをファイル形式でダウンロードする機能を提供するクラスです。
#物理ファイルのダウンロード FileDownload dextnj = new FileDownload(); //オプションの設定 FileDownloadOption option = new FileDownloadOption(); option.setFilename("sea.png"); //ダウンロード dextnj.download(request, response, new File("target path"), "file name to download", mime, inline);#メモリデータのダウンロード FileDownload downloader = new FileDownload(); //オプションの設定 FileDownloadOption option = new FileDownloadOption(); option.setFilename("profile.txt"); //ダウンロード dextnj.download(request, response, inputStream, "file name to download", mime, inline); - コンストラクタ
-
- FileDownloadクラスのオブジェクトを生成する。
-
形式
public FileDownload()
- メソッド
-
isAllowingWeakRange
-
RangeリクエストヘッダのみPartial Contentダウンロードを実行するかどうかを返します。
(Partial Contentダウンロードとは、データの一部のみを応答データにリターンするものである。)
-
形式
public boolean isAllowingWeakRange()
-
リターン
true, false
setAllowingWeakRange
-
RangeリクエストヘッダのみPartial Contentダウンロードを実行するかどうかを設定する。
(Partial Contentダウンロードとは、データの一部のみを応答データにリターンするものである。)
-
形式
public void setAllowingWeakRange(boolean allowingWeakRange)
-
パラメータ
名前 形式 説明 allowingWeakRange boolean trueの場合Rangeヘッダだけで処理、falseの場合は、If-Rangeヘッダを検査する。
isRemoveAfterDownloading (バージョン1.2.0からサポート)
-
ファイルをダウンロードした後、対象のファイルを削除するかどうかを返します。
-
形式
public boolean isRemoveAfterDownloading()
-
リターン
true, false
setRemoveAfterDownloading (バージョン1.2.0からサポート)
-
ファイルをダウンロードした後、対象のファイルを削除するかどうかを設定する。
ファイルの削除機能は、添付形式でファイルの全体をダウンロードする状態でのみ動作し、他のシステムが対象のファイルを先取りした場合、ファイルの削除が失敗することができる。
-
形式
public void setRemoveAfterDownloading(boolean removeAfterDownloading)
-
パラメータ
名前 形式 説明 removeAfterDownloading boolean ファイルを削除するには、trueに設定します。
isAutoClosingStream (バージョン1.3.0からサポート)
-
ダウンロードが完了した後、自動的にInputStreamオブジェクトを閉じるかどうかを返します。
-
形式
public boolean isAutoClosingStream()
-
リターン
true, false
setAutoClosingStream (バージョン1.3.0からサポート)
-
ダウンロードするとき、自動的にInputStreamオブジェクトを閉じるか設定する。
InputStreamからダウンロードするデータを供給を受けるときにのみ影響を与えます。
-
形式
public void setAutoClosingStream(boolean autoClosingStream)
-
パラメータ
名前 形式 説明 autoClosingStream boolean パラメータの値をtrueに設定すると、データを応答バッファに書き込まれた後、InputStreamオブジェクトを閉める。
getExpiringTime (2.2.0バージョンからサポート)
-
キャッシュの有効期限応答ヘッダーの設定に必要な時間の値を返します。
-
形式
public long getExpiringTime()
-
リターン
キャッシュの有効期限応答ヘッダーの設定に必要な秒単位の時間値
setExpiringTime (2.2.0バージョンからサポート)
-
キャッシュの有効期限応答ヘッダーの設定に必要な時間の値を設定する。
-
形式
public void setExpiringTime(long time)
-
パラメータ
名前 形式 説明 time long 秒単位の設定値
getUseTomcatSendFile (2.14.0バージョンからサポート)
-
ファイルダウンロードにTomcatのsendFileを使用するかどうかを返す。
-
形式
public boolean getUseTomcatSendFile()
-
戻り値
trueまたはfalse、デフォルト値はfalseである。
setUseTomcatSendFile (2.14.0バージョンからサポート)
-
ファイルダウンロードにTomcatのsendFileを使用するかどうかを設定する。
(注意)この設定は、HTTP圧縮が設定されている場合や、サーブレットフィルターを通して応答データを制御する構造では使用できないため、エラーが発生した場合はこの値をfalseに設定し、基本で提供されるダウンロード方式を使用するようにする。
-
形式
public void setUseTomcatSendFile(boolean useTomatSendFile)
-
パラメータ
名前 形式 説明 useTomatSendFile boolean sendFileを使用する場合はtrue、使用しない場合はfalse
download
-
物理ファイルあるいはメモリ上のデータをダウンロードする。
-
形式
public void download(HttpServletRequest request, HttpServletResponse response, InputStream targetSteam, String filename, String mime, boolean inline) public void download(HttpServletRequest request, HttpServletResponse response, InputStream targetSteam, String filename, String mime) public void download(HttpServletRequest request, HttpServletResponse response, InputStream targetSteam, String filename) public void download(HttpServletRequest request, HttpServletResponse response, File target, String filename, String mime, boolean inline, boolean useClientCache) public void download(HttpServletRequest request, HttpServletResponse response, File target, String filename, String mime, boolean inline) public void download(HttpServletRequest request, HttpServletResponse response, File target, String filename, String mime) public void download(HttpServletRequest request, HttpServletResponse response, File target, String filename) public void download(HttpServletRequest request, HttpServletResponse response, File target) #バージョン2.7.0以降 public void download(HttpServletRequest request, HttpServletResponse response, InputStream target, FileDownloadOption option) public void download(HttpServletRequest request, HttpServletResponse response, File target, FileDownloadOption option)
-
パラメータ
名前 形式 説明 request javax.servlet.http.HttpServletRequest HttpServletRequestオブジェクト response javax.servlet.http.HttpServletResponse HttpServletResponseオブジェクト target java.io.File ダウンロード対象となるFileオブジェクト targetSteam java.io.InputStream ダウンロード対象となるInputStreamオブジェクト filename java.lang.String ダウンロードするファイル名 mime java.lang.String ダウンロードするファイルのMIMEタイプを設定する。
対象のMIME-TYPEがわからない場合は、「application/octet-stream」のような形式で設定する必要がある。
inline boolean パラメータの値をtrueに設定すると、ファイルがダウンロードされず、ブラウザから直接開くこともできる。
useClientCache boolean クライアントのキャッシュポリシーを使用するかどうかを設定する。 option (バージョン2.7.0以降でサポート) devpia.dextuploadnj.FileDownloadOption ダウンロードのオプションがあるオブジェクト -
例外:IOException
-
使い方
#物理ファイルをダウンロードしています。 FileDownload dextnj = new FileDownload(); FileDownloadOption option = new FileDownloadOption(); option.setFilename("manual.docx"); option.setMime("appliation/octet-stream"); dextnj.download(request, response, new File("/data/F20220720-0001.docx"), option);#メモリデータのダウンロード InputStream is = null; try { is = new ByteArrayInputStream(...); FileDownload dextnj = new FileDownload(); FileDownloadOption option = new FileDownloadOption(); option.setFilename("manual.docx"); option.setMime("appliation/octet-stream"); dextnj.download(request, response, is, option); } catch (Exception e) { ... } finally { if (is != null) is.close(); }
downloadZip (バージョン1.3.0からサポート)
-
指定されたファイルまたはディレクトリを圧縮してzipファイルを作成し、すぐダウンロードする。
ダウンロードが完了すると、内部的に圧縮ファイルを直接削除し、圧縮ダウンロードはpartial contentダウンロードをサポートしていない。
-
形式
public void downloadZip(HttpServletRequest request, HttpServletResponse response, String filename, List<File> targets, File tempZipDir, String encoding, boolean includeHiddenFile) public void downloadZip(HttpServletRequest request, HttpServletResponse response, String filename, List<File> targets, List<String> names, File tempZipDir, String encoding, boolean includeHiddenFile) public void downloadZip(HttpServletRequest request, HttpServletResponse response, String filename, File targetDir, boolean includeTargetDirName, File tempZipDir, String encoding, boolean includeHiddenFile)
-
パラメータ
名前 形式 説明 request javax.servlet.http.HttpServletRequest HttpServletRequestオブジェクト。 response javax.servlet.http.HttpServletResponse HttpServletResponseオブジェクト。 filename java.lang.String ダウンロードするファイル名を設定します。
nullの場合、圧縮されたファイル名をそのまま使用する。
targets java.util.List<File> 圧縮するファイルのリストを指すオブジェクト。 targetDir File 圧縮するディレクトリを指しているオブジェクト。 includeTargetDirName boolean 圧縮したときに、ルートディレクトリを含めるかどうかを設定する。
trueの場合、ターゲットディレクトリを含む圧縮をし、falseの場合は対象を除く子ファイルまたは子ディレクトリを圧縮する。
tempZipDir File zipファイルが作成される一時ディレクトリを指すオブジェクト。
nullの場合、オペレーティングシステムが一時ディレクトリの場所を決定する。
encoding java.lang.String 多言語が含まれているファイル名をエンコードする過程で使用する文字セット名前を設定する。 一般的に、 "UTF-8"に設定し、nullの場合、応答オブジェクトに設定された文字セットを使用する。
includeHiddenFile boolean 圧縮するとき、隠しファイルも圧縮するかどうかを設定する。
names java.util.List<java.lang.String> (2.4.0バージョンからサポート)
圧縮するファイルの名前のリスト。「names」パラメータのサイズは「targets」パラメータのサイズと同じです。
-
使い方
List<File> files = new ArrayList<File>(); files.add(new File("/src/test/resources/compress/....txt")); files.add(new File("/src/test/resources/compress/....pdf")); files.add(new File("/src/test/resources/compress/subA/subB/....txt")); files.add(new File("/src/test/resources/compress/....jpg")); files.add(new File("/src/test/resources/compress/....docx")); FileDownload dextnj = new FileDownload(); dextnj.downloadZip(request, response, null, files, null, null, false);
-