文件上传

更新时间:2022-09-27 14:14:52

文档变更说明

原接口的中文名称由“通过上传方式创建文件”变更为“获取文件上传地址”,其接口功能未做调整。

文件上传步骤概述

把一个文件上传到e签宝服务端时,开发者需要以下两个大步骤:

步骤1:获取文件上传地址

步骤2:上传文件流(二进制字节流)

详细交互时序图如下:

步骤1 获取文件上传地址

接口描述

获取文件上传Url地址和文件ID,开发者可以通过此Url把待签署文件上传到e签宝服务端。

如果上传非PDF格式文件时,可通过设置 convert2Pdf 参数值为true将文件转成PDF格式。

接口返回的文件ID需妥善保管以便后续发起签署流程时使用。

注意:

1. 上传的单个文件总大小不超过20MB,其中单页内容大小不超过9MB。(当文件包含图片时请关注单页大小)

2. 文件名 fileName 长度限制64(包含后缀名),且参数值不可包含特殊字符,例如:/ \ : * " < > | ?以及所有emoji表情等。

3. 支持上传的文件格式详见文末的支持的文件格式列表

接口地址

/v1/files/getUploadUrl

请求方式

POST

请求头

提供两种安全接入方式,开发者可选择其中一种方式进行对接,对应参数如何获取,参考文档【请点击】。

方式一:请求签名鉴权(优先推荐)

请求头入参示例如下:

参数名称

类型

必选

参数说明

X-Tsign-Open-App-Id

string

项目ID

Content-Type

string

application/json;charset=UTF-8

X-Tsign-Open-Ca-Timestamp

string

API 调用者传递时间戳,值为当前时间的毫秒数,也就是从1970年1月1日起至今的时间转换为毫秒,时间戳有效时间为15分钟,为了防重放攻击

Accept

string

建议统一填写 */*

X-Tsign-Open-Ca-Signature

string

签名字符串

Content-MD5

string

当请求 Body 非 Form 表单时,可以计算 Body 的 MD5 值传递给云网关进行 Body MD5 校验。建议当请求 Body 非 Form 表单时,加上此请求头。

X-Tsign-Open-Auth-Mode

string

选择请求方式进行鉴权,固定值,Signature

方式二:OAuth2.0鉴权(不推荐使用)

当安全接入选择OAuth2.0鉴权方式请点击查阅详情,请求头入参示例如下:

参数名称

类型

必选

参数说明

X-Tsign-Open-App-Id

string

应用ID

X-Tsign-Open-Token

string

通过获取鉴权Token接口返回

Content-Type

string

application/json; charset=UTF-8

请求参数

参数名称

类型

必选

参数类型

参数说明

contentMd5

string

body

先获取文件MD5的二进制数组(128位),再对这个二进制进行base64编码。

(1)获取代码示例:【请点击

(2)可使用E签宝官网工具进行计算【请点击


contentType

string

body

目标文件的MIME类型,支持:

(1)application/octet-stream

(2)application/pdf

注意,后面文件流上传的Content-Type参数要和这里一致,不然就会有403的报错

fileName

string

body

文件名称(必须带上文件扩展名,不然会导致后续发起流程校验过不去 示例:合同.pdf );

注意:

(1)该字段的文件后缀名称和真实的文件后缀需要一致。比如上传的文件类型是word文件,那该参数需要传“xxx.docx”,不能是“xxx.pdf”。

(2)该字段建议直接传入pdf文件,其他类型文件建议本地自行转换成pdf,避免通过接口格式转换引起的格式错误、耗时久等问题。

(3)文件名称不支持以下9个字符:/ \ : * " < > | ?以及所有emoji表情。

fileSize

int64

body

文件大小,单位byte

convert2Pdf

boolean

body

是否转换成pdf文档,默认false,代表不做转换。转换是异步行为,如果指定要转换,需要调用查询文件信息接口查询状态,转换完成后才可使用。

注意:如果本身就是PDF文件,该参数必须是false,可以直接默认不传。

响应参数

展开全部参数参数名称

类型

必选

参数说明

code

int

业务码,0表示成功

message

string

信息

data

object

业务信息

fileId

string

文件ID

uploadUrl

string

文件上传地址,链接有效期60分钟。

请求示例  


POST https://openapi.esign.cn/v1/files/getUploadUrl
{
    "contentMd5":"eGMHwA4TWnbg6PYKMxreUQ==",
    "contentType":"application/octet-stream",
    "convert2Pdf":false,
    "fileName":"附件.zip",
    "fileSize":2542635
}

响应示例

{
    "code":0,
    "data":{
        "uploadUrl":"http://esignoss.esign.cn/1111564182/bcc7b1d0-6a2b-45bc-a6b0-68097a99ce08/%E8%8A%9C%E6%B5%A3%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B61?Expires=1570674805&OSSAccessKeyId=STS.NJUf5d3CTSM8Koy6MB3ZrftFK&Signature=xB%2B62bPNlPhE3ZDP8lZ4TbBYk0I%3D&callback-var=eyJ4OmZpbGVfa2V5IjoiJDZkM2E1NWIxLWM2Y2YtNDAyNi04NDI5LTViMDBiNWIxY2JlZSQyMTY3NzAwNjM0In0%3D%0A&callback=eyJjYWxsYmFja1VybCI6Imh0dHA6Ly80Ny45OS4yMjQuMjM1OjgwODAvZmlsZS1zeXN0ZW0vY2FsbGJhY2svYWxpb3NzIiwiY2FsbGJhY2tCb2R5IjogIntcIm1pbWVUeXBlXCI6JHttaW1lVHlwZX0sXCJzaXplXCI6ICR7c2l6ZX0sXCJidWNrZXRcIjogJHtidWNrZXR9LFwib2JqZWN0XCI6ICR7b2JqZWN0fSxcImV0YWdcIjogJHtldGFnfSxcImZpbGVfa2V5XCI6JHt4OmZpbGVfa2V5fX0iLCJjYWxsYmFja0JvZHlUeXBlIjogImFwcGxpY2F0aW9uL2pzb24ifQ%3D%3D%0A&security-token=CAIS%2BAF1q6Ft5B2yfSjIr4ngLY/Q3px15I/TSUnI0k0XP9VeibHtqTz2IHtKdXRvBu8Xs/4wnmxX7f4YlqB6T55OSAmcNZEod3TTArDkMeT7oMWQweEurv/MQBqyaXPS2MvVfJ%2BOLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B/m6/Ngdc9FHHPPD1x8CcxROxFppeIDKHLVLozNCBPxhXfKB0ca0WgVy0EHsPnvm5DNs0uH1AKjkbRM9r6ceMb0M5NeW75kSMqw0eBMca7M7TVd8RAi9t0t1/IVpGiY4YDAWQYLv0rda7DOltFiMkpla7MmXqlft%2BhzcgeQY0pc/RqAAa5BvYa8R6jX7v50o5iWdTJceZ0qwFqoAqO6uWZSPyqJHem/FntqEkDjdVHbDlGxhLECwZhV03g2YYUPV8MUyukXQa3H3Ixai3Dx84NaTff63mHyJvpmMTUYiARXOpf8U5CCmifHTOWcW6uEdV8o3QIjKLSwb%2Bfd0vR%2B3X37LMPb",
        "fileId":"c64665aa4f1c45679e65b6fae33cd773"
    },
    "message":"成功"
}


步骤2 文件流上传

功能描述

通过已获取到的 uploadUrl(文件上传地址)使用 PUT 请求方法把文件流(二进制字节流)上传到e签宝服务端,文件流(二进制字节流)上传完毕后才可以在后续成功发起签署流程。

如果文件流上传时出现报错,请参考文件上传常见报错及解决方法尝试解决。

上传地址

步骤1 获取文件上传地址 中所获取到的 uploadUrl。

注意:

文件流上传成功仅代表文件上传到OSS服务,OSS服务将异步通知e签宝变更文件状态。受网络等各类因素影响,异步通知可能存在一定时差,建议开发者先调用【查询文件上传状态】接口查询文件当前状态,如果文件状态是2或5时,再发起签署流程。

上传方式

HTTP的PUT请求方法。

请求头

请求头入参如下:

参数名称

类型

必选

参数说明

Content-MD5

string

与【步骤1 获取文件上传地址】Body体中contentMd5值一致

注意:必须跟上述说明接口的contentMd5参数一致,否则会报403错误

Content-Type

string

与【步骤1 获取文件上传地址】Body体中contentType值一致

如:application/octet-stream 或 application/pdf

注意:必须跟上述说明接口的MIME类型参数一致,否则会报403错误

请求参数

HTTP BODY:待上传文件的二进制字节流。

注意:此文件必须与contentMd5值对应的文件一致

响应参数

参数名称

类型

必选

参数说明

errCode

int

业务码,0表示成功

msg

string

成功

Postman请求示例

响应示例

{
    "errCode": 0,
    "msg": "成功"
}



支持的文件格式列表

文件扩展名

文件扩展名说明

支持情况

.pdf

属于Portable Document Format 的简称

支持上传,无需格式转换

.docx

Microsoft Office Word 2007 及以后版本

支持上传和转成PDF格式

.doc

Microsoft Office Word 97-2003 版本

支持上传和转成PDF格式

.rtf

Microsoft 富文本格式(Rich Text Format)

支持上传和转成PDF格式

.xlsx

Microsoft Office Excel 2007 及以后版本

支持上传和转成PDF格式

.xls

Microsoft Office Excel 97-2003 版本

支持上传和转成PDF格式

.pptx

Microsoft Office PowerPoint 2007 及以后版本

支持上传和转成PDF格式

.ppt

Microsoft Office PowerPoint 97-2003 版本

支持上传和转成PDF格式

.wps

WPS Office 文字文稿

支持上传和转成PDF格式

.et

WPS Office 表格文件

支持上传和转成PDF格式

.dps

WPS Office 演示文稿

支持上传和转成PDF格式

.jpeg

JPEG图像格式文件

支持上传和转成PDF格式

.jpg

属于.JPEG图像格式文件扩展名的简写

支持上传和转成PDF格式

.png

PNG图像格式文件

支持上传和转成PDF格式

.bmp

BMP图像格式文件

支持上传和转成PDF格式

.tiff

TIFF图像格式文件

支持上传和转成PDF格式

.tif

属于.TIFF图像格式文件扩展名的简写

支持上传和转成PDF格式

.gif

GIF图像格式文件

支持上传和转成PDF格式

.html

超文本标记语言格式文件

支持上传和转成PDF格式

.htm

属于.html超文本标记语言格式文件扩展名的简写

支持上传和转成PDF格式


说明:

如果文件中含有大量图片,在转换成PDF格式时耗时较久,具体耗时与实际文件大小有关。

我要纠错