<uploadTasks_uri>/{taskID}[.<format>]
文件上传任务资源,由 uploadTasks 资源的POST 请求创建。用于执行文件上传任务,及返回上传任务状态,如上传进度的百分比。其中,POST 操作上传文件时遵守 HTTP 协议中的上传文件 RFC1867 标准。
uploadTask 的具体使用方式可参见:JavaScript 示范程序( %SuperMap iServer_HOME%/sample/code/UseRESTAPI/FileUpload 位置)或 Java 示范程序(%SuperMap iServer_HOME%/sample/code/UseJavaAPI/FileUploadSample 位置)。
支持的方法:
支持的表述格式:rjson、json、xml。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。
http://supermapiserver:8090/iserver/manager/filemanager/uploadtasks/{taskID}.rjson
获取上传任务状态,如上传进度的百分比。
获取当前正在上传文件的状态信息
字段 | 类型 | 说明 |
path | String | 当前任务中正在上传文件的目标位置,即上传结果文件名及位置。 |
progress | double | 当前正在上传的文件上传进度的百分比数值。 |
md5 | String | 上传数据的 MD5值。
由客户端计算后发送给服务器的,用于上传完成后进行校验。 |
uploadedDataMD5 | String | 已经上传数据 MD5值,当 state 为 UPLOADING_ERROR 时有效。
用于上传意外中断,客户端续传时客户端进行校验。 |
state | State | 任务状态。可取值为:NEW|UPLOADING|COMPLETED|UPLOADING_ERROR|ERROR |
uploadedByteCount | long | 已经上传字节数,当 state 为 UPLOADING_ERROR 时有效。
用于上传意外中断,客户端续传时客户端进行校验。值为 null 时表示不能续传。 |
对上传文件资源 uploadTask 执行 GET 请求可获取正在上传文件的状态信息:
http://localhost:8090/iserver/manager/filemanager/uploadtasks/5280c5e718a34667b4d39c9d8ab45dc5_b77784d9aa1a4d578a57b03900fda75d.rjson
则返回的 rjson 格式响应结果如下:
{
"taskID": "5280c5e718a34667b4d39c9d8ab45dc5_b77784d9aa1a4d578a57b03900fda75d",
"path": "d:\test\test.sxwu",
"progress": "88.51",
"md5": null,
"uploadedDataMD5": null,
"state": "COMPLETED",
"uploadedByteCount": 0
}
发送上传文件的请求,即向服务器传递要上传的文件。
URI 中包含以下参数:
名称 | 类型 | 含义 |
toFile | String | 【必选参数】
待上传文件的目标位置,即上传结果文件名及位置,如 toFile=D:\test\test.udb。 可以传绝对路径或相对路径,相对路径的起算目录为 iServer 应用目录,如 Package 包中为%SuperMap iServer_HOME%\webapp\ iserver 目录 。 其中,文件后缀需要与上传文件保持一致。 |
overwrite | boolean | 【可选参数】
是否覆盖已有的同名文件,默认为 false。 |
unzip | boolean | 【可选参数】
是否解压要上传的文件,当上传的文件是*.zip 格式的时候生效。默认为 false,即不解压。 如果为 true,且上传的文件是*.zip 格式,则除了将文件上传到指定位置外,还会将文件解压到与上传结果文件同名的文件夹下,该文件夹与*.zip 存储位置相同。 |
请求体中包含以下参数:
名称 | 含义 |
file | 需要上传文件。 |
服务返要上传文件的确认信息,包含以下字段:
字段 | 类型 | 说明 |
fileName | String | 上传文件或目录的名称。 |
filePath | String | 文件上传后的目标文件或目录,用相对路径表示。
相对路径的起算目录为 iServer 应用目录,如 Package 包中为%SuperMap iServer_HOME%\webapp\ iserver 目录 。 |
fileSize | long | 上传文件的大小,单位为字节。 |
isDirectory | boolean | 是否是目录,默认为 false。 |
对上传文件资源 uploadTask 执行 POST 请求,在请求体中传递上传文件流 World.udb,并在 URI 中指定上传的目标位置,可实现向服务器上传文件。其中,在 WebManager 中执行 POST 操作时必须在 URI 传递 Token。请求地址:
http://localhost:8090/iserver/manager/filemanager/uploadtasks/5280c5e718a34667b4d39c9d8ab45dc5_b77784d9aa1a4d578a57b03900fda75d.rjson?&toFile=d:\test\test.udb&token=3XjSGlFx4KN5MMUHSsekOxJvxgPimVxPWSKIsfL9Qtlwx0nW0gEc8qY8B44tnVVEBQq-nPs2DUKenmDBFhCuYw..
uploadTask 的具体使用方式可参见 %SuperMap iServer_HOME%/sample/code/UseRESTAPI/FileUpload 位置的示范程序。
返回的 rjson 格式响应结果如下:
{
"fileName": "test.sxwu",
"filePath": "d:\test\test.sxwu",
"fileSize": "22970384",
"isDirectory": "False"
}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 uploadTask 资源是否存在,或者客户端是否有权限访问 uploadTask 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 uploadTask 资源是否支持<format>格式的表述。