Selco Cod
Selco Cod

Yazılım ve güvenlik üzerine makaleler yazan günümüz teknolojisini yakından takip eden sıradan birisi...

Twitter


Yandex Disk WebDAV ile Dosya Yükleme

En son yazımı 16 Nisan 2014 de yazmışım. Aradan üç ay geçmiş, belki size uzun geldi ama bana çok kısa gibi geldi çünkü o üç ay içerisinde hayatımda çok şey değişti. Değer verdiğim şeyler elimden alındı, yerisine yenisini koydum falan fıstık yani. Herneyse artık tekrar geldim ve ilk olarak sunucumu değiştirdim fakat yedek eski olduğu için bir kaç dosyamı kaybettim özellikle de blogda paylaştığım dosyaları fakat sonra daha önceden indiren arkadaşlarımdan temin ettim. Bu yedek işine temiz bir çare bulmak için sanal disk hizmeti veren sitelerden birisini kullanmaya karar verdim ama önce isterseniz sanal disk nedir ona bakalım.

Sanal Disk Nedir ?

Dosyalarımızı bu fotoğraf, video, belge, müzik vb. olan dökümanları normal bir harddisk yerine www protokolune sahip bir noktada saklamaya yarayan olaydır. En bilinenleri Dropbox, Google Drive, Yandex.Disk ve OneDrive dir. Benim ilk amacım uzaktan dosya yüklemeye izin veren api sistemi olan servisti ve Dropbox ile Yandex.Disk arasında kalıp yandexi seçtim çünkü 10 GB alan vermekteydi. Api sistemi ise de sitede paylaştığım herhangi bir dosyayı otomatik olarak disk hesabıma yüklemesini istiyordum ve Yandex.Disk i tebrik etmek gerek webDav hizmeti çok güzel gerçekten. Ben bu sistemi dosyalarımı saklamasından ve sitemin yedeklerinin otomatik alınıp yüklemesinden ötürü yaptım size de kısmi olarak sadece dosya yüklemesine yardımcı olarak yazdığım fonksiyonumu veriyorum.
<?php
/*
Fonksiyondaki $file değişkeni HTML FORM dan gelen $_FİLES global dizi değişkeni olmalıdır.
Örnek olarak yandexDiskUpload('user', 'password', $_FILES['file'], 'fileNameNew', '');
*/
function yandexDiskUpload($user, $password, $file, $fileName = NULL, $folder = NULL)
{
        $yandexWebDavUrl = $folder ? "https://webdav.yandex.com.tr/$folder/" : "https://webdav.yandex.com.tr/";
        $fileHandler = fopen($file['tmp_name'], 'r');
        $fileDetails = explode('.', strtolower($file['name']));
        $findExtension = end($fileDetails);
        if ( isset($fileName) ) $fileName = $fileName.'.'.$findExtension; else $fileName = uniqid().'.'.$findExtension;

        $ch = curl_init($yandexWebDavUrl . $fileName);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
        curl_setopt($ch, CURLOPT_PUT, TRUE);
        curl_setopt($ch, CURLOPT_INFILE, $fileHandler);
        $result = curl_exec($ch);

        fclose($fileHandler);

        return $result ? $yandexWebDavUrl . $fileName : false;
       
}
?>
İleriki günlerde bunun üzerine daha çok paylaşım yapacağım. Örnek yükleme dosyalarını ekten indirebilirsiniz.

281 kez indirildi


Yazı Hakkında Yorumlar