[英]Uploading files using PHP
我已經建立了一個HTML表單來選擇一個文件,並將其提交到PHP腳本,該腳本將上載它。 我不能使用move_uploaded_files()
因為Box的API要求我添加用於Authorization: access_token
的HTTP標頭Authorization: access_token
。 我所做的是使用cURL庫設置自己的POST方法。
我遇到的問題是正確設置文件名,因為它需要文件的完整路徑。 我無法從HTML表單獲取文件的完整路徑,並且使用$_FILES['filename']['tmp_name']
上載了我不需要的.tmp文件。 有人知道解決這個問題的方法嗎? 非常感謝!
我的代碼:
public function upload_file($file) {
$url = 'https://api.box.com/2.0/files/content';
$params = [
'filename' => '@'.$file['tmp_name'],
'folder_id' => '0'
];
$header = "Authorization: Bearer ".$this->access_token;
$data = $this->post($url, $params, $header);
}
public function post($url, $params, $header='') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
if(!empty($header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
}
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
建議您執行以下操作之一:
我想到的另一個問題是,如何使您的access_token保持刷新狀態?
我同意維沙爾在第一點的建議。
我已經為v2編寫了PHP SDK
只需包含api類並啟動該類即可:
<?php
include('library/BoxAPI.class.php');
$client_id = 'CLIENT ID';
$client_secret = 'CLIENT SECRET';
$redirect_uri = 'REDIRECT URL';
$box = new Box_API($client_id, $client_secret, $redirect_uri);
if(!$box->load_token()){
if(isset($_GET['code'])){
$token = $box->get_token($_GET['code'], true);
if($box->write_token($token, 'file')){
$box->load_token();
}
} else {
$box->get_code();
}
}
// Upload file
$box->put_file('RELATIVE FILE URL', '0'));
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.