阿里雲OSS,PHP簡單上傳文件並返回地址【轉】


需要下載php 的sdk包,注意路徑問題

up.php

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<form action="oss.php" method="post" enctype="multipart/form-data">
			<!--用戶名:<input type="text" name="uname"><br><br>-->
			請選擇文件:<input type="file" name="filename"><br><br>
			<input type="submit" value="點擊上傳">
		</form>		
	</body>
</html>

oss.php

<?php
require_once './aliyun-oss-php-sdk-master/autoload.php';
header("content-type:text/html;charset=utf-8");         //設置編碼
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
// 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
$accessKeyId = "accessKeyId";
$accessKeySecret = "accessKeySecret";
// Endpoint以杭州為例,其它Region請按實際情況填寫。這個先手動上傳個圖片,復制URL里面就有這個東西
$endpoint = "http://oss-cn-beijing.aliyuncs.com";
// 存儲空間名稱
$bucket= "bucket";//創建的桶名
// 文件名稱
$object = $_FILES['filename']['name'];
// <yourLocalFile>由本地文件路徑加文件名包括后綴組成,例如/users/local/myfile.txt
$filePath = $_FILES['filename']['tmp_name'];
 
// 上傳文件時設置回調。
// callbackUrl為,如http://oss-demo.aliyuncs.com:23450或http://127.0.0.1:9090。//
// callbackHost為回調請求消息頭中Host的值,如oss-cn-hangzhou.aliyuncs.com。//oss-cn-hangzhou.aliyuncs.com
$url =
'{
     "callbackUrl":"可訪問的ip地址",
     //"callbackBody" : "{bucket:${bucket}, object:${object}}",//這個是json的寫法,如果使用,相應的要改callbackBodyType的類型為application/json
     "callbackBody" : "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}",
     "callbackBodyType" : "application/x-www-form-urlencoded"    
 }';
 
$var =
   '{
       "x:var1":"value1",
       "x:var2":"值2"
    }';
$options = array(
  OssClient::OSS_CALLBACK => $url,
  OssClient::OSS_CALLBACK_VAR => $var
);
 
try{
  
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
	$ossClient->uploadFile($bucket, $object, $filePath);//上傳文件
 	$ossClient = (array)$ossClient;//對象轉換成數組
  	echo '<pre>';
    var_dump($ossClient);//打印所有信息
    var_dump(array_values($ossClient)[4]);//把所有value值取出並按照索引數組排列,取4是你上傳的地址
  
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
 
print(__FUNCTION__ . ": OK" . "\n");

文章轉自:https://blog.csdn.net/qq_29994361/article/details/85690396


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM