主要内容

matlab.net.http.io.FileProvider类

包:matlab.net.http.io
超类:matlab.net.http.io.ContentProvidermatlab.mixin.Copyable

ContentProvider来发送文件

描述

使用一个FileProvider对象作为向服务器发送一个或多个文件的方便方法。

matlab.net.http.io.FileProvider类是一个处理类。

创建

描述

providers = FileProvider(文件的数组构造FileProviders中的每个文件都有一个文件数组中。每个条目向服务器发送一个文件。

若要在到达文件末尾之前终止文件传输,请设置文件大小属性设置为所需的字节数。若要在读取文件时根据文件内容决定在何处结束传输,请编写一个子类并重写getData来检查正在读取的数据并设置停止返回值以结束传输。

providers = FileProvider(文件许可machineformat编码指定打开文件的选项。

providers = FileProvider(文件标识构造FileProviders由文件标识符指定。从当前文件位置指示器开始读取文件,直到文件的末尾。文件标识符在传输完成时不会关闭。如果文件已经打开,或者您只想传输文件的末尾部分,则此方法非常有用。为此,打开文件,将文件位置指示符设置为要传输的文件中数据的开头,然后将该文件标识符传递给这个构造函数。你也可以设置文件大小限制字节总数或编写一个子类来控制何时结束传输。

输入参数

全部展开

一个或多个文件名,指定为字符串、字符串数组、字符向量或字符向量的单元格数组。有关文件名使用的详细信息,请参见打开外部文件

数据类型:字符|字符串

文件访问类型,以字符串形式指定。如果许可时,它必须允许写访问。默认值为“w +”,它打开或创建一个文件进行读写,并丢弃现有的内容(如果有的话)。

数据类型:字符|字符串

类所允许的任意值指定的读取或写入字节或位的顺序打开外部文件函数。

数据类型:字符|字符串

属性所允许的任意值指定的字符编码打开外部文件函数。

数据类型:字符|字符串

一个或多个文件标识符,指定为double或double数组。

属性

全部展开

公共属性

文件的完整路径,由输入参数派生,指定为字符串。

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的

要传输的字节数,指定为double。

属性:

GetAccess
公共
SetAccess
公共

要发送的请求消息,指定为matlab.net.http.RequestMessage对象。

此属性仅供子类作者使用。的RequestMessage.send而且RequestMessage.complete方法将此属性设置为RequestMessage在谁的身体在调用此提供程序中的任何其他方法之前,在添加任何其他报头字段或验证消息之前,已经放置了此提供程序。提供者可以检查此消息,以查看原始请求中包含的内容。

委托看到的此属性值与委托看到的相同。内容提供者应该意识到,如果它们是委托,它们不一定提供请求消息的整个主体,所以它们不应该假设这个请求中的报头字段与它们所提供的数据相关。通常,委托应该忽略此请求中与数据相关的报头字段,例如Content-Type。

如果提供者希望向此消息添加任何报头字段,或修改现有的报头字段,则应该在其完整的方法,将这些字段添加到财产。打电话的人完整的RequestMessage或委托提供者)决定如何处理这些字段。RequestMessage.send而且RequestMessage.complete始终将这些字段复制到RequestMessage.委托提供程序可以将字段复制到自己的字段属性,或将它们插入到消息中(如MultipartProvider).有关更多信息,请参见财产。

此属性是只读的。

属性:

GetAccess 公共
SetAccess matlab.net.http.RequestMessage

消息或部分的报头字段,指定为一个或多个向量matlab.net.http.HeaderField对象。

此属性仅供子类作者使用。MATLAB®在调用提供者的属性之前设置此属性完整的方法。对于非多部分消息,MATLAB将此属性初始化为的内容请求。头,减去任意matlab.net.http.field.GenericFields或者空值字段。的内容提供者使用此属性可添加描述要发送的数据的报头字段,或向消息中已存在的报头字段添加参数。的委托中MultipartProvider, MATLAB将此属性初始化为委托提供程序打算为该部件插入的报头字段。委托可以修改或更改这些字段。

从提供商返回时完整的方法,如果这不是一个多部分消息,则MATLAB读取该属性并将其内容合并到的头文件中请求.这里的字段的名字还没有出现在请求。头都加到末尾请求。头.如果一个场在这里有一个的名字等于1 in请求。头,两者都有nonempty,那么:

  • 如果在请求。头是一个GenericField,然后忽略其中的

  • 如果在请求。头不是GenericField,然后将其替换为in

如果其中一个或两个都是空的价值,则该字段将从请求。头并且它不是作为正常消息完成的一部分添加的。

如果这是一个委托MultipartProvider,然后是整个内容用作部件的标头。多部分委托不能这样假设请求。头包含属于它们自己的任何字段.提供程序可以通过检查是否确定它是否是多部分委托MyDelegator是一个MultipartProvider,尽管这项测试不太可能需要。

MATLAB只在调用提供者的返回值时读取此属性完整的方法。一旦MATLAB调用,对该数组的更改将被忽略开始

类的作者应该意识到他们的子类可能已经向这个添加了字段(在他们完整的方法)。完整的在他们的超班。最好保留这些字段,不要添加具有相同名称的字段。但是,向字段中添加参数是允许的。例如,超类可以向现有的Content-Type字段添加字符集参数。

属性:

GetAccess
公共
SetAccess
公共

指示是否强制分块传输编码,指定为布尔值。此属性仅与子类作者有关,并且仅适用于非多部分委托的提供者。子类集ForceChunked控制是否使用分块传输编码发送内容。如果(默认),MATLAB决定是否发送分块的内容,基于它是否知道消息准备发送时的内容长度:

  • 如果MATLAB知道内容长度(如果消息包含content - length字段,或者该提供者的expectedContentLength方法返回一个数字),然后MATLAB决定是否将其分块发送。

  • 如果MATLAB不知道内容长度(没有content - length字段在头部和expectedContentLength返回空),则MATLAB始终将消息分块发送。

如果ForceChunked真正的,则无论MATLAB是否知道内容长度,除非已知长度小于数据块大小,MATLAB都会将消息分块发送。如果此属性为真正的,则消息必须不包含Content-Length字段,因为HTTP不允许分块消息具有Content-Length字段。方法中返回非零值expectedContentLength方法,如果您想让MATLAB验证您正在返回预期的数据长度。

当MATLAB选择将消息分块发送时,每个分块的大小等于返回的数据的长度getData

函数后,MATLAB读取此值完整的方法,在调用之前开始.它不设置这个字段。

属性:

GetAccess
公共
SetAccess
公共

受保护的属性

内容提供者提供程序委托给的对象,指定为matlab.net.http.io.ContentProvider对象。类在调用提供程序(委托)中设置此属性delegateTo方法来指示当前委托的提供程序。如果没有当前委托,则该值为空。

完整的方法将此属性设置为空。

属性:

GetAccess
受保护的
SetAccess
受保护的

内容提供者委托给此提供程序的matlab.net.http.io.ContentProvider对象。

如果一个内容提供者委托负责将全部或部分消息数据发送给另一个提供者,则此属性将将提供者委托给委托。例如,MultipartProvider将部分消息委托给其他提供者,因此它在每个委托中为自己插入句柄。否则,MyDelegator是空的。的delegateTo方法在委托中设置此属性。

属性:

GetAccess
受保护的
SetAccess
受保护的

方法

全部展开

更多关于

全部展开

在R2018a中引入