matlab.net.http.io.FileProvider クラス
名前空間: matlab.net.http.io
スーパークラス: matlab.net.http.io.ContentProvider
, matlab.mixin.Copyable
ファイルを送信する ContentProvider
説明
FileProvider
オブジェクトは 1 つ以上のファイルをサーバーに送信するのに便利です。
matlab.net.http.io.FileProvider
クラスは handle
クラスです。
作成
説明
providers = FileProvider(
は、ファイルを開くオプションを指定します。files
,permission
,machineformat
,encoding
)
providers = FileProvider(
は、ファイル識別子で指定された fileIds
)FileProviders
を作成します。現在のファイル位置指定子からファイルの末尾までの内容が読み取られます。ファイル識別子は転送の完了時に閉じられません。このメソッドは、ファイルを既に開いていて後続の部分だけを転送する場合に便利です。これを行うには、ファイルを開き、ファイル位置指定子をファイル内のデータの転送を開始する位置に設定して、このコンストラクターにそのファイル識別子を渡します。また、FileSize
を設定して合計バイト数を制限したり、転送を終了する位置を制御するサブクラスを記述したりすることもできます。
入力引数
files
— ファイル名
string | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
1 つ以上のファイル名。string、string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。ファイル名の使用の詳細については、fopen
を参照してください。
データ型: char
| string
permission
— ファイル アクセス タイプ
w+
(既定値) | u+
| u
| T
| 関数 fopen
によって許可される値
ファイル アクセス タイプ。string として指定します。permission
が指定されている場合、書き込みアクセスを許可しなければなりません。既定値は 'w+'
であり、読み取りおよび書き込みのためにファイルを開くか作成し、既存のコンテンツを破棄します (存在する場合)。
データ型: char
| string
machineformat
— バイトまたはビットの読み取りまたは書き込みの順序
fopen
によって許可される任意の値
バイトまたはビットの読み取りまたは書き込みの順序。関数 fopen
によって許可される任意の値として指定します。
データ型: char
| string
encoding
— 文字エンコード
fopen
によって許可される任意の値
文字エンコード。関数 fopen
によって許可される任意の値として指定します。
データ型: char
| string
fileIds
— ファイル識別子
double | double の配列
1 つ以上のファイル識別子。double または double の配列として指定します。
プロパティ
パブリック プロパティ
Filename
— ファイルの絶対パス
string
入力引数から導出されるファイルの絶対パス。string として指定します。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
FileSize
— 送信するバイト数
空 (既定値) | double
送信するバイト数。double として指定します。
属性:
GetAccess | public |
SetAccess | public |
Request
— 送信する要求メッセージ
matlab.net.http.RequestMessage
送信する要求メッセージ。matlab.net.http.RequestMessage
オブジェクトとして指定されます。
このプロパティはサブクラスの作成にのみ使用されます。このプロパティは、このプロバイダーで他のメソッドを呼び出す前であり、かつヘッダー フィールドを追加したりメッセージを検証したりする前に、このプロバイダーが Body
に配置された RequestMessage
に RequestMessage.send
メソッドと RequestMessage.complete
メソッドで設定されます。プロバイダーは、このメッセージを調べて元の要求の内容を確認できます。
デリゲートの場合、このプロパティの値はデリゲーターと同じになります。ContentProviders
がデリゲートである場合は、必ずしも要求メッセージの本文全体を提供するわけではないため、この Request のヘッダー フィールドがそのプロバイダーで提供するデータに関連するものであるとは限らないことに注意が必要です。通常、デリゲートでは、この要求のデータ関連のヘッダー フィールド (Content-Type など) は無視します。
このメッセージへのヘッダー フィールドの追加や既存のヘッダー フィールドの変更をプロバイダーで行う場合は、complete
メソッドで Header
プロパティにそれらのフィールドを追加します。それらのフィールドに対する処理は、complete
の呼び出し元 (RequestMessage
またはデリゲート元のプロバイダー) で決定されます。RequestMessage.send
と RequestMessage.complete
は、それらのフィールドを RequestMessage
の Header
に常にコピーします。デリゲート元のプロバイダーでは、フィールドをそれぞれの Header
プロパティにコピーしたりメッセージに挿入したりできます (MultipartProvider
の場合と同様)。詳細については、Header プロパティを参照してください。
このプロパティは読み取り専用です。
属性:
GetAccess | public |
SetAccess | matlab.net.http.RequestMessage |
Header
— メッセージまたはパートのヘッダー フィールド
matlab.net.http.HeaderField.empty
(既定値) | matlab.net.http.HeaderField
メッセージまたはパートのヘッダー フィールド。1 つ以上の matlab.net.http.HeaderField
オブジェクトのベクトルとして指定されます。
このプロパティはサブクラスの作成にのみ使用されます。このプロパティは、プロバイダーの complete
を呼び出す前に MATLAB® で設定されます。マルチパート メッセージ以外については、このプロパティは、MATLAB によって matlab.net.http.field.GenericFields
や値が空のフィールドを除いた Request.Header
の内容に初期化されます。ContentProvider
では、送信するデータを示すヘッダー フィールドを追加したり、メッセージの既存のヘッダー フィールドにパラメーターを追加したりする場合にこのプロパティを使用します。MultipartProvider
のデリゲートでは、このプロパティは、MATLAB によってデリゲート元のプロバイダーが挿入するパート用のヘッダー フィールドに初期化されます。これらのフィールドはデリゲートで変更が可能です。
マルチパート メッセージ以外では、プロバイダーの complete
メソッドから戻ると、MATLAB はこのプロパティを読み取って、その内容を Request
のヘッダーにマージします。この Header
に含まれるフィールドの Names
が Request.Header
にない場合、Request.Header
の末尾に追加されます。この Header
に含まれるフィールドの Name
が Request.Header
に含まれるフィールドと同じで、どちらの Values
も空でない場合は、次のように処理されます。
Request.Header
のフィールドがGenericField
の場合、Header
のフィールドは無視されます。Request.Header
のフィールドがGenericField
でない場合、Header
のフィールドに置き換えられます。
これらの一方または両方の Value
が空の場合は、Request.Header
からフィールドが削除され、メッセージの正常な終了時にも追加されません。
MultipartProvider
のデリゲートの場合は、この Header
の内容全体がパートのヘッダーとして使用されます。マルチパート デリゲートでは、Request.Header
にその Header
に付随する任意のフィールドが含まれていると想定してはなりません。プロバイダーがマルチパート デリゲートであるかどうかは MyDelegator
が MultipartProvider
かどうかを確認すれば特定できますが、このテストが必要になることはほとんどありません。
このプロパティが MATLAB で読み取られるのは、プロバイダーの complete
メソッドの呼び出しから戻るときだけです。MATLAB で start
が呼び出された後は、この配列に対する変更は無視されます。
クラスを作成するときは、スーパークラスで complete
を呼び出す前に、この (complete
メソッド内の) Header
にサブクラスがフィールドを追加済みの場合があることを認識しておく必要があります。それらのフィールドは残しておいて、同じ名前のフィールドを追加しないようにすることを推奨します。ただし、フィールドへのパラメーターの追加は可能です。たとえば、既存の Content-Type フィールドに charset パラメーターがない場合、スーパークラスで追加できます。
属性:
GetAccess | public |
SetAccess | public |
ForceChunked
— チャンク転送コーディングを強制するかどうかを示す
false
(既定値) | true
チャンク転送コーディングを強制するかどうかを示します。boolean として指定されます。これはサブクラスの作成にのみ関係するプロパティで、マルチパート デリゲート以外のプロバイダーにのみ該当します。サブクラスでは、ForceChunked
を設定することで、内容の送信にチャンク転送コーディングを使用するかどうかを制御します。false
(既定) の場合、MATLAB は、メッセージの送信準備ができた時点で内容の長さがわかっているかどうかに基づいて、内容をチャンク化して送信するかどうかを決定します。
MATLAB で内容の長さがわかっている場合 (メッセージに Content-Length フィールドがあるか、このプロバイダーの
expectedContentLength
メソッドから数値が返された場合)、チャンク化して送信するかどうかを MATLAB で決定します。MATLAB で内容の長さがわからない場合 (ヘッダーに Content-Length フィールドがないか、
expectedContentLength
の戻り値が空の場合)、MATLAB はメッセージを常にチャンク化して送信します。
ForceChunked
が true
の場合、内容の長さがわかっているかどうかに関係なく、既知の長さがチャンク サイズに満たない場合を除き、MATLAB はメッセージをチャンク化して送信します。このプロパティが true
の場合は、メッセージに Content-Length フィールドを含めてはなりません。HTTP ではチャンクされたメッセージに Content-Length フィールドを含めることが許可されないためです。ただし、想定されるデータの長さを返しているかを MATLAB で検証する場合は、expectedContentLength
メソッドで非ゼロの値を返すことができます。
MATLAB でメッセージをチャンク化して送信する場合、各チャンクのサイズは getData
で返されたデータの長さと等しくなります。
MATLAB は、complete
メソッドを呼び出してから start
を呼び出すまでの間にこの値を読み取ります。このフィールドの設定は行いません。
属性:
GetAccess | public |
SetAccess | public |
保護プロパティ
CurrentDelegate
— このプロバイダーのデリゲート先の ContentProvider
matlab.net.http.io.ContentProvider
| 空
このプロバイダーのデリゲート先の ContentProvider
。matlab.net.http.io.ContentProvider
オブジェクトとして指定されます。このプロパティは、現在のデリゲート先のプロバイダーを示すために呼び出し元のプロバイダー (デリゲーター) の delegateTo
メソッドで設定されます。現在のデリゲーションがない場合、値は空です。
このプロパティは complete
メソッドで空に設定されます。
属性:
GetAccess | protected |
SetAccess | protected |
MyDelegator
— このプロバイダーのデリゲート元の ContentProvider
matlab.net.http.io.ContentProvider.empty
(既定値) | matlab.net.http.io.ContentProvider
このプロバイダーのデリゲート元の ContentProvider
。matlab.net.http.io.ContentProvider
オブジェクトとして指定されます。
このプロパティは、ContentProvider
から別のプロバイダーにメッセージのすべてまたは一部のデータの送信がデリゲートされている場合に、デリゲート元のプロバイダーを示します。たとえば、MultipartProvider
はメッセージのパートを他のプロバイダーにデリゲートするため、各デリゲートに自身のハンドルを挿入します。それ以外の場合、MyDelegator
は空です。このプロパティは、デリゲートの delegateTo
メソッドで設定されます。
属性:
GetAccess | protected |
SetAccess | protected |
メソッド
パブリック メソッド
getData | FileProvider から HTTP 要求メッセージで送信するデータの次のバッファー |
特殊な演算子と関数
次のメソッドは、MATLAB の標準の演算子および関数と継承メソッドを、このクラスのオブジェクト用に特殊化したものです。
string | string としての |
show |
|
保護されたメソッド
complete | ContentProvider の完全な HTTP ヘッダー |
preferredBufferSize | ContentProvider の推奨されるバッファー サイズ |
expectedContentLength | ContentProvider の内容の長さ |
start | ContentProvider からのデータ転送を開始する |
restartable | ContentProvider が再起動可能かどうか |
reusable | ContentProvider が再利用可能かどうか |
delegateTo | 別のプロバイダーにデリゲートする |
詳細
クラスの階層
バージョン履歴
R2018a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)