簡體   English   中英

使用PHP上傳文件

[英]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;
    }

建議您執行以下操作之一:

  1. 使用move_uploaded_files將文件上傳到某個目錄,然后使用該位置使用curl將文件發送到文件夾。 成功上傳后,您可以從該目錄中刪除文件。
  2. 您可以使用cors http://developers.blog.box.com/2013/05/13/uploading-files-with-cors/在客戶端上傳文件,而不是通過PHP上傳文件

我想到的另一個問題是,如何使您的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'));
?>

在這里看看下載: BoxPHPAPI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM