php上传文件到阿里云对象存储
本例含2个文件的代码,一个是选择上传文件的表单页面文件(upload.html),一个是负责上传的sendOss.php文件。
upload.html代码
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>php上传文件到阿里云对象存储</title> </head> <body> <form method="post" action="sendOss.php" enctype="multipart/form-data" target="_blank"><input type="file" name="file" /><br /><input type="submit" value=" 上传 " /></form> </body> </html> |
sendOss.php代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php if ($_FILES["file"]["error"] > 0) { exit("Error: " . $_FILES["file"]["error"]); } require_once __DIR__ . '/aliyun/oss/autoload.php'; use OSS\OssClient; use OSS\Core\OssException; //阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户 $accessKeyId = "yourAccessKeyId"; $accessKeySecret = "yourAccessKeySecret"; //yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com $endpoint = "yourEndpoint"; //填写Bucket名称,例如examplebucket $bucket= "examplebucket"; //Object完整路径,不含Bucket名称。exampledir是你阿里云对象存储Bucket下的目录名称,对象名称这里保留了原文件名称,你也可以改成别的名称 $object = "exampledir/" . $_FILES["file"]["name"]; //要上传的本地文件 $filePath = $_FILES["file"]["tmp_name"]; try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->uploadFile($bucket, $object, $filePath); } catch(OssException $e) { printf("%s", __FUNCTION__ . ": FAILED\n"); printf("%s", $e->getMessage()); return; } printf("%s", __FUNCTION__ . "OK"); ?> |
说明:
本例中阿里云OSS的php版sdk放在了/aliyun/oss/目录下。
参考资料:阿里帮助中心 – 首页>对象存储 OSS>SDK示例>PHP>PHP上传文件>PHP简单上传
https://help.aliyun.com/document_detail/88473.html?spm=a2c4g.11186623.0.0.7e404a9cu3c2kT