<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yusuf KOÇ &#187; download</title>
	<atom:link href="http://www.ysfkc.com/tag/download/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ysfkc.com</link>
	<description>Php Günlüğü</description>
	<lastBuildDate>Fri, 23 Jul 2010 16:39:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Php Dosya Download v2.0</title>
		<link>http://www.ysfkc.com/php/php-dosya-download-v20.html</link>
		<comments>http://www.ysfkc.com/php/php-dosya-download-v20.html#comments</comments>
		<pubDate>Fri, 17 Oct 2008 22:45:17 +0000</pubDate>
		<dc:creator>Raiden</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[dosya]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[indirme]]></category>
		<category><![CDATA[uzak sunucu]]></category>
		<category><![CDATA[yükle]]></category>
		<category><![CDATA[yükleme]]></category>

		<guid isPermaLink="false">http://www.ysfkc.com/?p=95</guid>
		<description><![CDATA[Merhabalar çok uzun bir aradan sonra ilk defa post giriyorum bloğa. Bunun nedeni araya bayram tatili işlerin yoğunluğu da etken olmadı değil. Galiba biraz da ben boşverdim nedense. Dün oturup Pardus 2008 güncellemesi yaparken komodo ide diye tanıttığım program da yine  daha önceden yazmış olduğum php ile dosya download betiğine biraz çeki düzen verdim ve [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.ysfkc.com/dosyalar/konuresimleri/php.jpg" alt="" width="100" height="50" />Merhabalar çok uzun bir aradan sonra ilk defa post giriyorum bloğa. Bunun nedeni araya bayram tatili işlerin yoğunluğu da etken olmadı değil. Galiba biraz da ben boşverdim nedense. Dün oturup Pardus 2008 güncellemesi yaparken <a href="http://www.ysfkc.com/php/pardusde-komodo-ide-php-editor-kurulumu.html" target="_blank">komodo ide</a> diye tanıttığım program da yine  daha önceden yazmış olduğum <a href="http://www.ysfkc.com/php/php-ile-dosya-download-etme.html" target="_blank">php ile dosya download </a>betiğine biraz çeki düzen verdim ve böylelikle hem komodo ide yi biraz kullanmış oldum hem de dosya download sınıfımı biraz daha geliştirdim ekleme ve çıkarmalar yaparak daha kullanışlı bir hale getirdim.<br />
<span id="more-95"></span><br />
İlk sürümdeki sınıfımız bir yapılandırıcı ile başlatılmaktaydı. Böyle olunca da her nesne için yeniden sınıf çağrılması ve başlatılması gerekiyordu ki bu da hem zaman kaybı hemde sıkıcı bir durum ortaya çıkarmaktaydı. Bu nedenle ilk versiyondaki yapılandırıcı olan <strong>__construct()</strong> metodumuzu bu yeni versiyon da kaldırmış bulunmaktayım.</p>
<p>Yeni sürümdeki metotlarımıza şöyle bir göz atalım..</p>
<p><strong>setUrlAddress():</strong> (yeni)<br />
Erişim public. Bu metot ile download edeceğimiz dosyanın tam url adresini belirtiyoruz.</p>
<p><strong>setDirectory():<br />
</strong>Erişim public. Bu metot v1 den v2 ye aynen aktarıldı ve işlevi download edilecek olan dosyanın hangi dizin içine indirileceği belirtiliyor. Unutmadan söylemek gerekir ki dosyanın download edileceği dizinin izin hakları ayarlanmış olmalıdır.</p>
<p><strong>setFileName():</strong> (yeni)<br />
Erişim public. Bu metot ile indirmek istediğimiz dosyaya yeniden isim vermek için kullanıyoruz. Ek parametreleri vardır bunlar;<br />
<strong>true:</strong><br />
metoda true değeri girildiğinde random bir isim verecektir.<br />
<strong>false:</strong><br />
metoda false değeri girildiğinde url deki dosya adını alacaktır<br />
<strong>kullanici tanimli isim:</strong><br />
Eğer metoda kullanıcı kendisi isim verirse o şekilde kaydedecektir. Örn: <strong>setFileName(&#8216;yeni_dosya&#8217;) </strong>gibi.</p>
<p><strong>getFileExtension():</strong> (yeni)<br />
Erişim private. Bu metoda sınıf içinden erişim yapılmaktadır. Böyle ayarlanmasının sebebi kullanıcının kafasının karışmaması içindir. Görevi ise indirilmek istenen dosyanın uzantısını döndürmektedir.</p>
<p><strong>getData():</strong><br />
Erişim private. Bu metot ile download edilmek istenen dosyanın içeriği alınıyor ve kaydedilmek üzere depolanıyor. Bu metot v1 den v2 ye aynen aktarıldı.</p>
<p><strong>saveData():</strong><br />
Erişim public. Bu metot ile içeriği okunup depolanan dosyanın belirtilmiş olan dizine kaydedilmesini sağlıyor. Yine bu metotda v1 den v2 ye aynen aktarıldı.</p>
<p><strong>getMessage():</strong> (yeni)<br />
Erişim private. Bu metodumuz ise sınıf içinde tanımlanan <strong>getMsg</strong> adlı dizide toplanan output çıktılarını uygun ve düzenli bir şekilde kullanıcıya yansıtmak için kullanılan bildirim metodur.</p>
<p>Evet şöyle bir baktımda baya konuştum sanırım. Bahsettiğimiz sınıfın yeni sürümü aşağıdadır.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #666666; font-style: italic;">/* Php File Download v2.0
 * Yusuf KOÇ ( Raiden ) 
 * http://www.ysfkc.com
 *
 * Copyright 2008 Ysfkc.Com
 * Licensed under the GNU General Public License, version 2.
 * See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
 */</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> fileDownload
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$fileUrl</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$curl</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$fileName</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$fileExtension</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$getMsg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setUrlAddress<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileUrl</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$url</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setDirectory<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_writable</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span><span style="color: #990000;">is_readable</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMsg</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Belirtmiş Olduğunuz Dizin Yazılabilir Değil'</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMsg</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Belirtmiş Olduğunuz Dizin Okunabilir Değil'</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setFileName<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_bool</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileName</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/^(http:\/\/.*\/)?/i&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileUrl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_bool</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileName</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">sha1</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">uniqid</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mt_rand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileExtension</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFileExtension</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getFileExtension<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^(http:\/\/.*\.)?/i'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileUrl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">,</span>CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileUrl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">,</span>CURLOPT_USERAGENT<span style="color: #339933;">,</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_USER_AGENT'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">,</span>CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> saveData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;"># Callback getData()
</span>        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Open new file 
</span>        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dir</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileName</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'w'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">file</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">content</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMsg</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Dosya Kaydedildi.'</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMsg</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Dosya Yolu: &lt;i&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dir</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileName</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/i&gt;'</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMsg</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Dosya Download Edilemedi'</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getMessage<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;ul&gt;'</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMsg</span> <span style="color: #b1b100;">AS</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&lt;li&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/li&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/ul&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Yeni sürüm php dosya download sınıfımız ile bir örnek yapalım.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #666666; font-style: italic;">/* Php File Download v2.0
 * Yusuf KOÇ ( Raiden ) 
 * http://www.ysfkc.com
 */</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Sınıfımızı Dahil Ediyoruz.
</span><span style="color: #666666; font-style: italic;"># -------------------------------
</span><span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ysfkc.file.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Sınıfımızı Başlatıyoruz.
</span><span style="color: #666666; font-style: italic;"># -----------------------------
</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> fileDownload<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Download Etmek İstediğimiz Dosyayının URL Adresini Giriyoruz.
</span><span style="color: #666666; font-style: italic;"># -------------------------------------------------------------------
</span><span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setUrlAddress</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.ysfkc.com/dosyalar/ajax.tar.gz'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Download Edilecek Dizini Belirtiyoruz.
</span><span style="color: #666666; font-style: italic;"># ----------------------------------------
</span><span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setDirectory</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Dosyaya Random İsim Verdiyoruz True Parametresini Girerek.
</span><span style="color: #666666; font-style: italic;"># False Direk ajax.tar.gz olarak alacaktır.
</span><span style="color: #666666; font-style: italic;"># İsterseniz de $file-&gt;setFileName('yeni_isim') ile kendiniz de isim verebilirsiniz.
</span><span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Son Olarak Dosya Kaydetme İşlemini Başlatıyoruz.
</span><span style="color: #666666; font-style: italic;"># ----------------------------------------------------------------
</span><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">saveData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># Download İşlemi Başarılı Oldu İse Bildirim Mesajını Alıyoruz.
</span>    <span style="color: #666666; font-style: italic;"># ----------------------------------------------------------------
</span>    <span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># Download İşlemi Başarılı Olmadıysa Hata Bildirimini Yapıyoruz
</span>    <span style="color: #666666; font-style: italic;"># ----------------------------------------------------------------
</span>    <span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Evet görüldüğü gibi kullanımı oldukça basit bu sınıf uzak sunucudaki bir dosyayı kendi sunucumuza veya local bilgisayarımıza kaydetmek için gayet kullanışlı.</p>
<p>Örneğimizi indirmek için <a href="http://www.ysfkc.com/dosyalar/down.tar.gz">tıklayınız</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ysfkc.com/php/php-dosya-download-v20.html/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Php ile dosya download etme</title>
		<link>http://www.ysfkc.com/php/php-ile-dosya-download-etme.html</link>
		<comments>http://www.ysfkc.com/php/php-ile-dosya-download-etme.html#comments</comments>
		<pubDate>Wed, 13 Aug 2008 21:48:49 +0000</pubDate>
		<dc:creator>Raiden</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[dosya]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[indir]]></category>
		<category><![CDATA[yükle]]></category>

		<guid isPermaLink="false">http://www.ysfkc.com/?p=86</guid>
		<description><![CDATA[Merhabalar efendim yine baya bir uzun aradan sonra yeniden yazı yazma fırsatı doğdu. Bu  kadar uzun neden bekledim önce onlardan biraz bahsedeyim. Elimde bir mobilya e-ticaret işi vardı. Tüm zamanımı ona ayırdığım için bloğa vakit ayıramadım. Hoş bundan sonra da yine yok olucam bir hafta kadar malum herkes tatiline gitti geldi ve sıra bende . [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="php" src="http://www.ysfkc.com/dosyalar/konuresimleri/php.jpg" alt="php" width="100" height="50" /> Merhabalar efendim yine baya bir uzun aradan sonra yeniden yazı yazma fırsatı doğdu. Bu  kadar uzun neden bekledim önce onlardan biraz bahsedeyim. Elimde bir mobilya e-ticaret işi vardı. Tüm zamanımı ona ayırdığım için bloğa vakit ayıramadım. Hoş bundan sonra da yine yok olucam bir hafta kadar malum herkes tatiline gitti geldi ve sıra bende <img src='http://www.ysfkc.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Lafı Fazla uzatmadan gelelim bu yazıdaki konumuza.</p>
<p><span id="more-86"></span></p>
<p>Başlığımızdan da anlaşıldığı gibi php ile uzak sunucudaki bir dosyayı kendi belirttiğimiz ve yazma izni olan dizinimize download edeceğiz. Adı geçen sınıfımız php5 baz alınarak kodlanmıştır.</p>
<p>Sınıfımızı şöyle bir tanıyalım ve içeriği paylaşalım değil mi ? <img src='http://www.ysfkc.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #009933; font-style: italic;">/**
 *  File Downloader  
 *  Yusuf KOÇ &lt;yusufkoc@ayva.net&gt;
 *  http://www.ysfkc.com 
 *     
*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> fileDownload
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$fileURL</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$curl</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$return</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* Set Url Name */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileURL</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$url</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* Set Directory */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setDirectory<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_writable</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span><span style="color: #990000;">is_readable</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;ul&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Hatası.&lt;li&gt;Dizin Okuma Modunda Değil&lt;/li&gt;&lt;li&gt;Dizin Yazma Modunda Değil&lt;/li&gt;&lt;/ul&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* Get Data */</span>
    protected <span style="color: #000000; font-weight: bold;">function</span> getData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">,</span>CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileURL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #339933;">,</span>CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> saveData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">/* Parse File Name */</span>
        <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#http:\/\/.*\/(.*)#i&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fileURL</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">return</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">/* Call Data */</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dir</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">return</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;w&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">file</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">content</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Sınıfımızı yukarıda da gördüğümüz gibi dört adet metoddan oluşmaktadır. Sınıfımız bir <strong>construct </strong>ile direk tetiklenerek başlatılıyor. Ardından <strong>setDirectory()</strong> metodu ile dosyamızı hangi dizine indirceksek onu belirtiyoruz ve <strong>saveData()</strong> metodu ile de dönen sonuca göre bilgilendirme yapıyoruz. </p>
<p>Sınıfımızın kullanımına gelir isek şu şekilde kullanabiliriz.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;"># File Download Sınıfı Dahil Ediliyor.
</span><span style="color: #666666; font-style: italic;"># -----------------------------------
</span><span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file.download.class.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Sınıfımız Başlatılıyor
</span><span style="color: #666666; font-style: italic;"># ---------------------
</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> fileDownload<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.ysfkc.com/dosyalar/php_ile_resim_thumnail_olusturma.rar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Download Dizinimiz Belirtiliyor
</span><span style="color: #666666; font-style: italic;"># ------------------------------
</span><span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setDirectory</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Durum Kontrol Ediliyor
</span><span style="color: #666666; font-style: italic;"># ---------------------------
</span><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">saveData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Dosya download edildi.&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Dosya download edilemedi. Yeniden Deneyiniz.&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Öncelikle sınıfımızı mevcut dosyamıza dahil ediyoruz. Ardından sınıfımızı download edeceğimiz dosyamızın url adresini girerek başlatıyoruz. Daha sonra download dizinimizi belirtip ardından durum kontrolü yaparak dosyamızın download edilip veya edilmediği hakkında bilgi elde ediliyor. </p>
<p>Örnekteki dosyamızı <a href="http://www.ysfkc.com/dosyalar/file.rar">buradan</a> indirebilirsiniz. Güle güle kullanın kullanırken de beni hatırlayın <img src='http://www.ysfkc.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ysfkc.com/php/php-ile-dosya-download-etme.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
