Make Copy File / Image From Another URL


Kali ini aku mo kasih sebuah code untuk mengcopy image dari URL. Seperti halnya “imageshack.us” menggunakan url untuk mengupload images.

Celakanya cara menguploadnya tidak bisa disamakan dengan upload dari komputer kita yang sangat simple dengan menggunakan syntax :

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))

lebih rumit memang, karena ini juga terbatas pada aturan hosting masing-masing. Contoh hosting yang gw pakai sekarang tidak bisa menggunakan copying file via syntax copy. Seperti contoh berikut :

/*
$url => URL image yang akan dicopy
$newfilenamedir => ALamat tujuan file akan disimpan
*/

if (!copy($url,$newfilenamedir))
	{
		echo "";
		die();
	}

Memang ada benarnya kalo fungsi tsb di disable. Why? Coba bayangkan kalau ada yang mencopy file config kalian? dangerous deh… password database dan juga usernamenya ketauan, bisa ludeszh isi DB swt

<?
$result[0] => berisi filename yang akan digunakan untuk file hasil copyan(gunakan variable lain karena ini code gw comot dari aplikasi gw
$uploadir => tempat dimana upload file akan ditaruh(absolute path)
*/

/*================ READING Extension using something easy T.T =====================*/	

preg_match("/\\.(jpg|JPG|GIF|PNG|gif|png|gif?)$/",$url,$matches);
preg_match("/(jpg|JPG|GIF|PNG|gif|png|gif?)$/",$matches[0],$matches);

$file=$matches[0];

$filetype	= "image/$file";

if ($filetype=="image/jpg" || $filetype=="image/JPG")
{
	$filetype	= "image/jpeg";
}

/*======================= END OF READING ===============================*/

	if ($filetype=="image/jpeg")
	{
		$filename	= "$result[0].jpg";
	}
	else if ($filetype=="image/pjpeg")
	{
		$filename	= "$result[0].jpg";
	}
	else if ($filetype=="image/gif")
	{
		$filename	= "$result[0].gif";
	}
	else if ($filetype=="image/x-png")
	{
		$filename	= "$result[0].png";
	}
	else if ($filetype=="image/png")
	{
		$filename	= "$result[0].png";
	}
	else
	{
		echo "file type $filetype not Registered or Allowed";
		die();
	}

// First Stage Finished... Lanjut..........

	$newfilename	= $filename;
	$newfilenamedir	= "$uploaddir$filename";

	$tmpname	= "$uploaddir/temp.tmp";

//The main event......

	$ch = curl_init($url);
	$fp = fopen("$tmpname", 'w');
	curl_setopt($ch, CURLOPT_FILE, $fp);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_exec($ch);
	curl_close($ch);
	fclose($fp);

	copy ($tmpname,$newfilenamedir);

?>

cara diatas menggunakan “CURL” menthod. Pada beberapa server mungkin di dukung mungkin juga tidak. Kalau ngetest di localhost(using XAMPP) fungsi ini ga akan di dukung. jadi gambling aja coba2 dulu di hosting di internet, hehehehe

2 thoughts on “Make Copy File / Image From Another URL

Mari Berdiskusi Bersama

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s