阿里云oss -HTML上传

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。

今天测试了一波 用 html 直接上传oss里,不经过服务器转存。用到了 postman 和普通HTML。

结果:最好不要用前端直接上传,成功什么返回都没有,只有上传失败或者其他问题才有一个xml返回,用这个做判断也行,成功了的话访问地址是

Bucket 地址 + 你设置上传的路径 + 设置的图片上传名称+图片后缀 + ?x-oss-process=style/stylename

建议还是后台转存...

前情提要  **--** 换成自己

Bucket 域名
<?php
$access_id = 'LTAI**--**LVf8';
$access_key = '5uL**--**Ij1qr';
$url='http://dd***.oss-cn-shenzhen.aliyuncs.com';//更改成你自己的地址 Bucket 域名
$policy = '{"expiration": "2120-01-01T12:00:00.000Z","conditions":[{"bucket": "d**--**n/a**--**p" },["content-length-range", 0, 104857600]]}';
/*
 * expiration 设置该Policy的失效时间,超过这个失效时间之后,就没有办法通过这个policy上传文件了
 * bucket  上传的路径
 * content-length-range  设置上传文件的大小限制
 * */
$policy = base64_encode($policy);
$signature = base64_encode(hash_hmac('sha1', $policy, $access_key, true));//生成认证签名
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>OSSHTML直接上传</title>
</head>
<body>
<form action="<?php echo $url;?>" method="post" enctype="multipart/form-data">
    <input type="hidden" name="Content-Type" value="image/png" >
    <input type="hidden" name="OSSAccessKeyId" id="OSSAccessKeyId"  value="<?php echo $access_id; ?>" />
    <input type="hidden" name="policy" id="policy"  value='<?php echo $policy; ?>' />
    <input type="hidden" name="signature" id="signature"  value="<?php echo $signature; ?>" />
    <input type="text" name="key" id="key"  value="上传的名称.png" />
    <br/>
    <br/>
    <label for="file">选择文件:</label>
    <input type="file" name="file" id="file" />
    <br />
    <br/>
    <br/>
    <input type="submit" name="submit" value="确定" />
</form>
</body>
</html>
点赞

发表评论