You are currently viewing PHP Google Drive Resim Yükleme

PHP Google Drive Resim Yükleme

Merhaba arkadaşlar bugün sizlere PHP Google Drive Resim Yükleme ile ilgili örnek kodları paylaşmak istiyorum…

Hazır olarak bilgisayarınıza kütüphaneyi composer ile kurmak isterseniz https://github.com/google/google-api-php-client linkini inceleyebilirsiniz. Fakat bu kütüphaneyi kurduktan sonra ” Class “Google_Config” not found ” şu şekilde bir uyarı alabilirsiniz, bunun nedeni kurduğunuz dizin içinde example dizininden Google sınıflarına ulaşamadığı içindir bunun için ilk olarak kullanacağınız örnek .php dosyasını açarak include_once kımını diez yaparak kapatınız. Daha sonra

[code]
require_once ‘../../../autoload.php’;
require_once ‘../src/Google/Client.php’;
[/code]

kısımlarını kendinize göre düzenlemeniz. Daha sonra vendor/google/apiclient/src/Google/Client.php dosyaını açarak aldığınız client_id ve secret kodlarınızı burdakiler ile güncellemenizdir. Daha sonra projeniz çalışacaktır. Ben sizler için kendim saatlerce uğraşıp düzelttiğim kodları veriyorum client kısmını kendinize göre düzenleyin eğer dizinde farklılık gösterir iseniz o kısımlarıda düzenlemeniz gerekmektedir.

Kod Bloğundan Bir Örnek

[code]
<pre class="code"><?php
/*
* Copyright 2011 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
require_once ‘../../../autoload.php’;
require_once ‘../src/Google/Client.php’;
//include_once __DIR__ . ‘/../vendor/autoload.php’;
include_once "templates/base.php";

echo pageHeader("File Upload – Uploading a simple file");

/*************************************************
* Ensure you’ve downloaded your oauth credentials
************************************************/
if (!$oauth_credentials = getOAuthCredentialsFile()) {
echo missingOAuth2CredentialsWarning();
exit;
}

/************************************************
* The redirect URI is to the current page, e.g:
* http://localhost:8080/simple-file-upload.php
************************************************/
$redirect_uri = ‘http://’ . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘PHP_SELF’];

$client = new Google_Client();
$client->setAuthConfig($oauth_credentials);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://www.googleapis.com/auth/drive");
$service = new Google_Service_Drive($client);

// add "?logout" to the URL to remove a token from the session
if (isset($_REQUEST[‘logout’])) {
unset($_SESSION[‘upload_token’]);
}

/************************************************
* If we have a code back from the OAuth 2.0 flow,
* we need to exchange that with the
* Google_Client::fetchAccessTokenWithAuthCode()
* function. We store the resultant access token
* bundle in the session, and redirect to ourself.
************************************************/
if (isset($_GET[‘code’])) {
$token = $client->fetchAccessTokenWithAuthCode($_GET[‘code’]);
$client->setAccessToken($token);

// store in the session also
$_SESSION[‘upload_token’] = $token;

// redirect back to the example
header(‘Location: ‘ . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

// set the access token as part of the client
if (!empty($_SESSION[‘upload_token’])) {
$client->setAccessToken($_SESSION[‘upload_token’]);
if ($client->isAccessTokenExpired()) {
unset($_SESSION[‘upload_token’]);
}
} else {
$authUrl = $client->createAuthUrl();
}

/************************************************
* If we’re signed in then lets try to upload our
* file. For larger files, see fileupload.php.
************************************************/
if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’ && $client->getAccessToken()) {
// We’ll setup an empty 1MB file to upload.
DEFINE("TESTFILE", ‘testfile-small.txt’);
if (!file_exists(TESTFILE)) {
$fh = fopen(TESTFILE, ‘w’);
fseek($fh, 1024 * 1024);
fwrite($fh, "!", 1);
fclose($fh);
}

// This is uploading a file directly, with no metadata associated.
$file = new Google_Service_Drive_DriveFile();
$result = $service->files->insert(
$file,
array(
‘data’ => file_get_contents(‘a.jpg’),
‘mimeType’ => ‘application/octet-stream’,
‘uploadType’ => ‘images/jpg’
)
);

// Now lets try and send the metadata as well using multipart!
$file = new Google_Service_Drive_DriveFile();
$file->setTitle("Hello World!");
$result2 = $service->files->insert(
$file,
array(
‘data’ => file_get_contents(TESTFILE),
‘mimeType’ => ‘application/octet-stream’,
‘uploadType’ => ‘multipart’
)
);
}
?>

<div class="box">
<?php if (isset($authUrl)): ?>
<div class="request">
<a class=’login’ href='<?= $authUrl ?>’>Connect Me!</a>
</div>
<?php elseif($_SERVER[‘REQUEST_METHOD’] == ‘POST’): ?>
<div class="shortened">
<p>Your call was successful! Check your drive for the following files:</p>
<ul>
<li><a href="<?= $result->alternateLink ?>" target="_blank"><?= $result->title ?></a></li>
<li><a href="<?= $result2->alternateLink ?>" target="_blank"><?= $result2->title ?></a></li>
</ul>
</div>
<?php else: ?>
<form method="POST">
<input type="submit" value="Click here to upload two small (1MB) test files" />
</form>
<?php endif ?>
</div>

<?php echo pageFooter(__FILE__) ?>
[/code]

Takıldığınız kısımlarda yazarsanız elimden geldiğinde yardımcı olmaya çalışırım. Google Drive Api

 

banner-generic

kurtitasarim

‘’İrade ve yargıları aşan güçlü bir coşku, ihtiras" diye tanımlanır tutku. Yaptığın işi sevmek yerine, sevdiğin işi yap mottosu da benim tutku tanımım. Kod yazmak bir yana, o kodun sistem üzerindeki hareketlerini, farklı cihazlar ile etkileşimini, o noktalarda oluşan sıkıntıları görmek, çözmek ve bunu yaparken diğer kişilere yol göstermek işimin en zevkli yanı. Bu sebeple önce tutku ile yapılan iş, sonra maddiyat..

This Post Has 2 Comments

  1. Adem

    Pek birşey anlayamadım.
    Kütüphane gerekli mi?
    Değil ise başlardaki includeler niçin?
    “diez” nedir biz acemiyiz kusura bakmayın
    Yoksa sadece burada paylaştığınız kodlar yeterlimi?
    Kolay gelsin

    1. kurtitasarim

      Anlamadığınız kısımlar için,
      – örnek kodu github kütüphanesini indirip bu yazdığımıda ekleyip denediniz mi?
      – diez yorum satırlarıdır, php # işareti olan kısımları dikkate almaz ve es geçer.
      – Sadece bu kodlar tabiki yetmemektedir! ilgili kütüphaneyide indirimeniz gereklidir..
      Teşekkürler.

Bir yanıt yazın