uploadTask


URI

<uploadTasks_uri>/{taskID}[.<format>]

支持的方法

GETPOSTHEAD

父资源

uploadTasks

介绍

文件上传任务资源,由 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。

资源层次

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。

http://supermapiserver:8090/iserver/manager/filemanager/uploadtasks/{taskID}.rjson

GET 请求

获取上传任务状态,如上传进度的百分比。

响应结构

获取当前正在上传文件的状态信息

字段 类型 说明
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

}

POST 请求

发送上传文件的请求,即向服务器传递要上传的文件。

请求参数

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"

}

HEAD 请求

返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。

HEAD 请求可以用来判断 uploadTask 资源是否存在,或者客户端是否有权限访问 uploadTask 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 uploadTask 资源是否支持<format>格式的表述。

请参见