2016-04-12 14 views
2

私は、サーバーからクライアントのGoogleドライブにファイルをアップロードするPHPスクリプトを作成しようとしています。ファイルをアップロードすることができました。また、カールを使用して作成したフォルダ内でも問題はありません。フォルダがGoogleドライブに既に存在するかどうかを確認するにはどうすればよいですか?

$folder_fields = "{\"title\":\"innitel\", 
    \"parents\":\"[{}]\", 
    \"mimeType\":\"application/vnd.google-apps.folder\"}"; 


$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v2/files"); 
    curl_setopt($ch, CURLOPT_PORT, 443); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $folder_fields); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, ARRAY("Authorization: Bearer $access_token", 
    "Content-Type: application/json")); 
    $reponse = curl_exec($ch); 

このメソッドは、作成します。クライアントがすでにはい、私はIDを取得し、そのフォルダのidにファイルをアップロードする必要がある場合は、ここで私は、ファイルを作成するために使用されるコードで、特定の名前のフォルダを持っていますスクリプトが実行されるたびに同じ名前のフォルダ。 する方法はありますか?

注:サーバーのphpバージョンがサポートされていない5.3のため、google-api-php-clientは使用できません。

+0

PHPバージョンをアップグレードしてください。真剣に。 5.3。安全でないとみなされ、より新しいPHPでカバーされている可能性のあるハッキングの可能性があります。 –

+0

あなたは正しいですが、問題は問題を引き起こすので、私が働いている会社はそれを行うことができないということです。 – MuhammadNe

+1

準最適なコードは、セキュリティリークを起こす言い訳として使用しないでください。ローカルサーバーのすべての問題を修正し、コードをアップロードして(祈り)、最終的な問題を修正する必要があります。これに割り当てられた時間がない場合は、クライアントに申し訳ありませんより安全であることを伝える必要があります。 –

答えて

1

このアプローチは、グローバルに一意のフォルダ名を使用するかどうかによって異なります。答えが "はい"の場合は、単にfiles.list q title = 'foo'を実行します。アイテムを取得した場合は、既存のIDがあります。アイテムを取得しない場合は、アイテムを作成する必要があります。

一方、グローバルに一意のフォルダ名がない場合は、フォルダ階層を取得して、親が非常に複雑になっているかどうか確認する必要があります。

+0

ありがとう、私はできるだけ早くこのアプローチを行い、それが動作するかどうかを確認しようとします。 – MuhammadNe

関連する問題