devpia.dextuploadnj.support.common
Class ExtensionFileUploadFilter
- サポートされる最小バージョン
- 1.0.0
- 最小サポート環境
- JRE 1.6
- 説明
-
ExtensionFileUploadFilterクラスは、javax.servlet.Filterインタフェースを実装するクラスで、大容量ファイルのアップロード機能を担当します。フィルタ・クラスであるため、Javaサーブレット・コンテナ(Tomcatサーバーなど)によって自動的にロードされ、コード・レベルでの作成や呼び出しなしで大容量ファイルのアップロードを処理します。
DD(web.xml)でExtensionFileUploadFilterフィルタを設定する方法を示します。
# web.xml <filter> <filter-name>extensionUploadFilter</filter-name> <filter-class>devpia.dextuploadnj.support.common.ExtensionFileUploadFilter</filter-class> <!-- パラメータの設定を省略 --> </filter> <filter-mapping> <filter-name>extensionUploadFilter</filter-name> <!-- 大きなアップロードを処理させたいサーブレットまたはURLをマッピングします。 <servlet-name>サーブレット名</servlet-name> <url-pattern>マッピングURL</url-pattern> --> </filter-mapping> - パラメータの設定
-
init-param 要素を使用して、ExtensionFileUploadFilter フィルタのパラメータを設定します。
# web.xml <filter> <filter-name>extensionUploadFilter</filter-name> <filter-class>devpia.dextuploadnj.support.common.ExtensionFileUploadFilter</filter-class> <init-param> <param-name>tempRepository</param-name> <param-value>/file/temp</param-value> </init-param> <init-param> <param-name>defaultRepository</param-name> <param-value>/file/store</param-value> </init-param> ... </filter> - パラメータの種類
-
パラメータ名 デフォルト 説明 tempRepository (必須) 一時ディレクトリへのパスを設定します。パスはOS環境に基づいた物理的なフルパスでなければなりません。パスの値が '/' またはドライブ文字列で始まらない場合、内部的に Web アプリケーションのルートディレクトリで始まるパスとして認識されます。
defaultRepository (必須) ファイルを保存するデフォルトのディレクトリパスを設定します。パスは OS 環境に基づく物理的なフルパスでなければなりません。パスの値が '/' またはドライブ文字列で始まらない場合、Web アプリケーションのルートディレクトリから始まるパスとして内部的に認識されます。
autoMakingDirectory false ファイルを保存する際に、ディレクトリがまだ存在しない場合に作成 するかどうかを設定します(true または false)。ウェブアプリケーションにディレクトリを作成する権限がない場合、エラーがスローされます。
whiteExtensions (空) アップロード制限の対象とならないファイル拡張子の一覧を設定します。ファイル拡張子のリストは「jpg,gif,png,docx,...」のように「,」で区切られます。
enableCleaner false 大きなファイルをアップロードする際、様々な事情でアップロードが完了しなかった場合、一時的なファイルが残ることがあります。enableCleanerプロパティをtrueに設定すると、内部でファイルクリーナーが実行され、一定間隔(1分)で一時ファイルが削除されます。
timeAgo 0 ファイルクリーナーが削除する一時ファイルの最終更新時刻と現在時刻の差を設定します。たとえば、値を 32 に設定すると、ファイルクリーナーは、最終更新時刻が 32 時間以上前のすべての一時ファイルを削除します。
hour の値のデフォルトは 0 ですが、0 以下の場合は 24 時間に設定されます。
socketInputStreamReadBufferSize
(バージョン 1.1.0 以降でサポート。推奨しない)32768 アップロードストリームからバイナリデータを読み込むためのバッファのサイズ (バイト単位) を設定します。
streamReadRetryCount
(バージョン 1.1.0 以降でサポート、バージョン 2.5.0 以降で非推奨)10 アップロードストリームから読み込んだデータの長さがゼロの場合に、 ストリームを再度読み込むための再試行回数を設定します。
fileCopyOption
(バージョン 1.1.0 以降でサポート)Channel ファイルコピーを内部で行う場合のファイルコピー方法を設定します。
Channel、Stream、ScatterGather、MemoryMapping から選択できますが、通常は Channel を使用します。
fileCopyBufferSize
(バージョン 1.1.0 以降でサポート)32768 ファイルのコピー時に読み書きするバッファのサイズ (バイト単位) を設定します。
maxFileSize
(バージョン 2.5.0 以降でサポート)0 各ファイルのサイズを制限したい場合に、個々のファイルに許容される最大サイズ(バイト単位)を設定する。
デフォルト値は 0 で、これは制限なしを意味する。
maxTotalSize
(バージョン 2.5.0 以降でサポート)0 ファイル全体のサイズを制限したい場合に、許容される最大サイズ (バイト単位) を設定します。大きなファイルのアップロードは、個々のファイルサイズの制限が設定されているかのように動作します。(全体の制限なし)
デフォルトは 0 で、これは制限なしを意味します。
loosely
(バージョン2.5.0からサポート。推奨しない)false マルチパートデータの解析レベルを緩めるために設定します。
checksumEnable
(バージョン 2.6.0 以降でサポート)false アップロードされたファイルの整合性チェックを行う場合に設定します。完全性チェックは、DEXTUploadX5製品(バージョン3.4.0.0以降)を使用してラージファイルアップロードモードでアップロードされたファイルに対してのみ実行されます。
licenseFilePath (空) サーバーライセンスファイルのパスを設定します。OS環境に応じた物理的なフルパスである必要があります。
licenseConfigXmlPath (空) XMLを利用したサーバのライセンス適用を参照してください。
licenseAuthKey (空) ドメインライセンスまたは複合ライセンスを使用している場合は、認証キー文字列を設定します。
filterConfigLocation
(バージョン 2.11.0 以降でサポート)(空) パラメータ設定値のプロパティファイルへのパスを設定します。
プロパティファイルへのパスは、OS環境に応じた物理的なフルパスである必要があります。パスの値が '/' またはドライブ文字列で始まらない場合、内部的に Web アプリケーションのルートディレクトリから始まるパスとして認識されます。
- プロパティファイルによるパラメータ設定(バージョン2.11.0から対応)
-
バージョン2.11.0から、プロパティファイルを使ったExtensionFileUploaderFilterのパラメータ設定の読み込みに対応しました。
# /some/path/dextuploadnj-uploadfilter-sample.properties dextuploadnj.uploadFilter.tempRepository=/file/temp dextuploadnj.uploadFilter.defaultRepository=/file/store dextuploadnj.uploadFilter.autoMakingDirectory=true dextuploadnj.uploadFilter.maxFileSize= dextuploadnj.uploadFilter.maxTotalSize= dextuploadnj.uploadFilter.whiteExtensions= dextuploadnj.uploadFilter.enableCleaner=true dextuploadnj.uploadFilter.timeAgo=24 dextuploadnj.uploadFilter.checksumEnable=false dextuploadnj.uploadFilter.licenseFilePath= # web.xml <filter> <filter-name>extensionUploadFilter</filter-name> <filter-class>devpia.dextuploadnj.support.common.ExtensionFileUploadFilter</filter-class> <init-param> <param-name>filterConfigLocation</param-name> <param-value>/some/path/dextuploadnj-uploadfilter-sample.properties</param-value> </init-param> </filter>filterConfigLocation パラメータを使用してプロパティ ファイルへのパスを設定した場合、ExtensionFileUploaderFilter フィルタはターゲット プロパティ ファイルをロードし、デフォルト設定を読み込みます。filterConfigLocation パラメータを宣言しなかった場合は、Web アプリケーションのクラスパスで dextuploadnj/dextuploadnj-uploadfilter-default.properties ファイルを検索し、存在すればそのファイルをロードして設定を取得します。
dextuploadnj-uploadfilter-default.propertiesを作成し、dextuploadnj/dextuploadnj-uploadfilter-default.propertiesとしてWebアプリケーションのクラスパスの場所にアクセスできるようにした場合、web.xmlでExtensionFileUploaderFilterフィルタを設定するときに、パラメータを設定せずに使用することができます。
# web.xml <filter> <filter-name>extensionUploadFilter</filter-name> <filter-class>devpia.dextuploadnj.support.common.ExtensionFileUploadFilter</filter-class> <!-- パラメータ化は必要ありません。 dextuploadnj/dextuploadnj-uploadfilter-default.properties から設定を読み込みます。 --> </filter>ビルド時に src/main/resources の場所が出力先として設定されていると仮定すると、dextuploadnj/dextuploadnj-uploadfilter-default.properties ファイルがプロジェクトの src/main/resources の下に存在する場合、クラスパスの /resources/dextuploadnj-uploadfilter-default.properties というパスでアクセスできます。したがって、デフォルトのパラメータを設定するために、src/main/resources/dextuploadnj に dextuploadnj-uploadfilter-default.properties ファイルを作成することをお勧めします。WAR アプリケーションの場合、dextuploadnj-uploadfilter-default.properties ファイルは、展開後に WEB-INF/classes/dextuploadnj ディレクトリで見つけることができます。これは、プロジェクトのパッケージング設定で src/main/resources の場所が WEB-INF/asses として指定されている場合にのみ当てはまります。

プロパティ・ファイルと web.xml の両方で重複するパラメータを設定した場合、web.xml のパラメータ設定が優先されます。