表单上传
表单上传适用于文件内容可以在一次 HTTP 请求即可传递完成的场景。该功能非常适合在浏览器中使用 HTML 表单上传资源,或者在不需要处理复杂情况的客户端开发中使用。如果文件较大(大于 1GB),或者网络环境较差,可能会导致 HTTP 连接超时而上传失败。
开发者只要组装一个符合 HTML 文件上传表单规范的 HTTP 请求,并以 POST 方式发起这个请求,即可将指定文件上传到服务端。
参数名称 | 必填 | 说明 |
---|
resource_key | 否 | 资源名,必须是UTF-8编码。如果上传凭证中 scope 指定为 : <bucket>:<key>, 则该字段也必须指定,并且与上传凭证中的 key 一致,否则会报403 错误。如果表单没有指定 key,可以使用上传策略saveKey字段所指定魔法变量生成 Key,如果没有模板,则使用 Hash 值作为 Key。 |
upload_token | 是 | 上传凭证,位于 token 消息中。 |
crc32 | 否 | 上传内容的 crc32 校验码。如填入,则互站云服务器会使用此值进行内容检验。 |
accept | 否 | 当 HTTP 请求指定 accept 头部时,互站云会返回 Content-Type 头部值。该值用于兼容低版本 IE 浏览器行为。低版本 IE 浏览器在表单上传时,返回 application/json 表示下载,返回 text/plain 才会显示返回内容。 |
fileName | 是 | 文件本身。 |
fileBinaryData | 是 | 上传文件的完整内容。 |
示例
function upload($accessKeyk,$secretKey,$bucket,$key,$expires = 3600)
{
$policy = [
'fsizeLimit' => 1024 * 1024, //限定上传文件大小最大值,单位Byte。
];
$strictPolicy = true;
$authObj = new Auth($accessKey, $secretKey);
$token = $authObj->uploadToken($bucket, $key, $expires, $policy, $strictPolicy);
return $token;
}
$accessKey = 'xxx';
$secretKey = 'xxx';
$bucket = '123_4';
$key = null;//key上传文件名称,和表单中 <input name="key" type="hidden" value="<key>"> 的值对应,为null则不限定表单名称,如果不为null,表单的key不能省略
$expires = 3600;//有效时间,单位秒,默认1小时
echo upload($accessKeyk,$secretKey,$bucket,$key);