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

Leave a Reply