11
2006
File Downloader
Lama-kelamaan saya merasa ini hal yang tidak efisien, karena file harus mampir dahulu di komputer saya. Selain itu, kadang agak repot untuk upload dari komputer saya ke webhosting. Ini dikarenakan kadang koneksi internet tidak stabil. Dengan pertimbangan tersebut akhirnya saya memikirkan cara download dengan skema:

Skema ini bukan ide dari saya lho, dalam artian ide ini sudah umum dipakai oleh orang lain seperti developer rapidleech.
Ok deh, tidak usah berpanjang-panjang kata. Saya sudah membuat script sederhana untuk melakukan hal tersebut. Syarat utama dari script sederhana ini adalah adanya fasilitas CURL di hosting tempat meletakkan script ini.
Ini Bagian Form:
<form method="post" action="downloader.php">
<table width="400">
<tr>
<td>URL</td>
<td></td>
</tr>
<tr>
<td>Save to</td>
<td> </td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
</table>
</form>
Ini Bagian Action:
if ($_POST["url"] != "" && $_POST["save"] != "")
{
$ch = curl_init();
$fh = fopen("'" . $_POST["save"] . "'", "w");
curl_setopt($ch, CURLOPT_URL, "'" . $_POST["url"] . "'");
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
if (!curl_errno($ch))
echo $_POST["url"]." have been downloaded.";
else
echo curl_error($ch);
curl_close($ch);
}
Script tersebut saya jadikan satu untuk memudahkan penggunaan saja, jadi hanya upload satu file, kemudian tinggal pakai saja itu file. Script ini membutuhkan 2 parameter masukan, yaitu URL dan Save to. URL di harus diisi dengan alamat file yang akan di download, lengkap dengan http://. Sedangkan Save to adalah tempat untuk meletakkan file tersebut. Tempat disini harus full path (nama_direktori/nama_file.nya). jangan lupa direktori dari tempat tujuan harus diijinkan ditulisi oleh others (parah-parahnya di chmod 777).
Kalau dilihat dari script diatas terlihat ada security hole di bagian lokasi penyimpanan file. Sehingga apabila anda khawatir sebaiknya ditambahkan $_SERVER['DOCUMENT_ROOT'] di bagian fopen() untuk mengurangi penyalahgunaan dari script ini. Agar lebih aman, silahkan menambahkan authentikasi tertentu agar hanya kita sendiri yang dapat menggunakan script tersebut.
Mungkin ini saja tutorial yang sederhana ini. Yang saya tonjolkan adalah idenya (walaupun bukan ide saya), untuk pengembangannya silahkan dikreasikan sesuai kebutuhan Anda.
Aris Priyantoro
aris.pituruh.com
Full Source ada di disini
19 Comments + Add Comment
Leave a comment
Arsip
- December 2011
- July 2011
- April 2011
- December 2010
- August 2010
- July 2009
- April 2009
- December 2008
- November 2008
- October 2008
- July 2008
- June 2008
- April 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006

An article by






Mas,
dengan cara lain yang lebih sederhana kita bisa melakukannya dengan cara lain: xmlrpc/json. phpxmlrpc bisa diset utk bekerja dengan gaya json-rpc. Dulu kelemahannya jelas, semua binary akan di encode ke base64, yang membuat ukurannya bengkak 30%, tapi sekarang class phpxmlrpc sudah mendukung kompresi, jadi sebelum di download, di kompress dulu. Hasilnya lumayan, saya bisa menggunakannya bersama XAMPP sebagai downloader semua hal utk klien2 saya, seolah mereka punya ftp downloader. Yang jelas semua diubah menjadi http -> http downloader. Tidak se-fancy rapidleech script, but it works. :)
Trus kalo pengen download dari Rapidshare?? gmn?? :o
Udah pernah pake Curl mas?
kalo ingin download ebook untuk belajar Ajax, Json dan Javascript yang gratisan, ada gak?
http://blog.phpug.or.id/smilies/yahoo_silent.gif
[-(
Ini skrip saya juga sederhana :
<?php
shell_exec(“wget -c http://targethost.tld/namafile.ext“);
?>
Simpan skrip di atas di folder yg ter-chmod 777
@ Hermann Golden
kok wget -c ?
bukankah wget -c artinya continue alias meneruskan proses yang udah jalan?
script untuk download manager ada gak?.jadi bisa download dan di save ke server web host
Lah, dihalaman kedua khan ada link-nya. Atau langsung tengok kesini: http://aris.pituruh.com/data/downloader.txt
scripts php shell dengan perintah wget, jalan atau enggak nya tergantung dari settingan server nya. kalau sudah dari sananya shell nya disable, yah skripnya pasti gak jalan.
sekarang ini sudah jarang ada hostingan yang shell nya enable, rata2x disable semua.
pas nyoba scriptnya kok kluar error.. trus scriptnya yg bagian ini:
$fh = fopen(“‘” . $_POST["save"] . “‘”, “w”);
curl_setopt($ch, CURLOPT_URL, “‘” . $_POST["url"] . “‘”);
saya hilangkan tanda petik tunggalnya “‘” ternyata bisa jalan.. :D oia, saya juga nambahin CURLOPT_FOLLOWLOCATION. supaya klo linknya itu redirect ke link laen, masih bisa didownload.
$fh = fopen($_POST["save"], “w”);
curl_setopt($ch, CURLOPT_URL, $_POST["url"]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
wekekek.. ternyata di comment atas blom kehapus tanda petik tunggalnya yg di bawah.. heiheiehi.. :P tolong dihapuskan ya, mas Aris.. :)
mo tanya tentang session..saya masih awam tentang pembuatan session untuk login. kira2 bisa bantu gak? kalo bisa yang jelas soalnya saya masih awal banget tentang php..trims
Coba lihat di artikel yang ini:
http://phpug.or.id/2006/08/29/membuat-aplikasi-php-yang-aman-bag-1/
Pke fopen juga bisa :d
http://www.ibnoe.web.id/2007/11/13/trik-upload-sourcecode-exwpjoomla-cepet.aspx
kalo ga pake curl bisa ga yah…???
wah yg dari http://aris.pituruh.com/data/downloader.txt hasilnya Protocol ‘http not supported or disabled in libcurl.
saya nyoba pake fread malah berhasil :) tested on file 85 MB. di blog saya kemaren saya bahas tuh. CMIIW
saya pengen bisa, cuma kelihatannya rumit amat ya?
pasang php shell aja boss.
http://hadyanwijaya.wordpress.com/shell/
intinya di
:D script php ga tampil yah di koment hehe
shell_exec(“perintah shell”);