文件上传

2019-11-04 16:12:10
先知
66
最后编辑:先知 于 2019-11-22 09:32:31

XXD 服务器为客户端提供了文件上传 HTTP 协议接口。

请求地址为:

XXD 服务器地址/fileUpload

例如:

https://demo.xxd.com:11443/fileUpload

客户端通过 HTTP 协议使用此地址向 XXD 服务器发起 POST 请求,在请求数据中包含一个名称为file的文件域来发送要上传的文件数据,除了文件数据还需要 POST 如下表单域数据:

  • userID:上传文件的用户 ID;
  • gid:该文件所属的会话gid属性值。

下面为一个上传pakeage.json文件到服务器到示例 POST 数据:

------WebKitFormBoundaryXVndy7lQUYdaV3p1
Content-Disposition: form-data; name="file"; filename="package.json"
Content-Type: application/json
------WebKitFormBoundaryXVndy7lQUYdaV3p1
Content-Disposition: form-data; name="userID"
12
------WebKitFormBoundaryXVndy7lQUYdaV3p1
Content-Disposition: form-data; name="gid"
4134e746-f808-ed24-eec9-ac5afe139b56
------WebKitFormBoundaryXVndy7lQUYdaV3p1--

如果要设置上传文件名称则通过请求头部信息进行设置,例如:

X-FILENAME: filename.png

当 XXD 服务器处理上传的文件之后会返回 HTTP 状态码200表示文件已经上传成功,同时随 HTTP 请求返回一个 JSON 对象字符串,该对象包含如下属性:

属性名称 类型 说明
result 字符串 如果为'success'则表示文件上传成功,如果为其他值则表示上传失败
message 对象 如果上传失败,则使用此属性返回失败原因提示文本
data 对象 表示上传的文件存储到服务器端后的 文件数据对象

文件数据对象包含如下属性:

属性名称 类型 说明
time 数字 表示文件成功上传时服务器端时间戳,精确到秒
id 字符串或数字 表示文件在服务器上存储的 ID,通常为数据库主键,在执行数据库插入时自动生成
name 字符串 表示上传时原始文件名称

下面为一个文件上传请求返回的内容文本示例:

{
    result: 'success',
    data:  {
        time: 1543578506,
        id: 7,
        name: 'package.json'
    }
}

如果文件上传失败,服务器可能会返回如下内容:

{
    result: 'fail',
    message: '上传失败,没有足够的空间存储文件。'
}
发表评论
评论通过审核后显示。