'image/png', 'jpg' => 'image/jpeg', 'gif' => 'image/gif', 'bmp' => 'image/bmp', 'ico' => 'image/vnd.microsoft.icon', 'tiff' => 'image/tiff', 'svg' => 'image/svg+xml', 'mp3' => 'audio/mpeg' ); function curl($url,$post='',$header='', $referer=''){ global $cc; if(!$cc){ $cc=curl_init(); if(!$header) curl_setopt($cc,CURLOPT_HEADER,1); else curl_setopt($cc,CURLOPT_HEADER,0); curl_setopt($cc,CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)'); curl_setopt($cc,CURLOPT_VERBOSE,1); curl_setopt($cc,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($cc,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($cc,CURLOPT_SSLVERSION,3); if($referer) curl_setopt($cc,CURLOPT_REFERER,$referer); curl_setopt($cc,CURLOPT_RETURNTRANSFER,1); } curl_setopt($cc,CURLOPT_URL,$url); if($post){ curl_setopt($cc,CURLOPT_POST,1); curl_setopt($cc,CURLOPT_POSTFIELDS,$post); } $buf=curl_exec($cc); return $buf; } //치환시작 $code=md5($url); $dir=date('Y').'/'.date('m').'/'.date('d').'/'.substr($code,0,1).'/'.substr($code,1,1).'/'.substr($code,2,1); $dir2=date('Y',time()-86400).'/'.date('m',time()-86400).'/'.date('d',time()-86400).'/'.substr($code,0,1).'/'.substr($code,1,1).'/'.substr($code,2,1); $address=$dir.'/'.$code; $address2=$dir2.'/'.$code; $remote='http://file2.instiz.net/data/file2/'.$address; //기존파일이 있으면 재로딩없이 재활용한다 if(is_file('/data/file.instiz.net/data/file2/'.$address)||is_file('/data/file.instiz.net/data/file2/'.$address2)){ if(is_file('/data/file.instiz.net/data/file2/'.$address2)){ $address=$address2; $remote='http://file2.instiz.net/data/file2/'.$address; } //파일명뒤에 확장자를 붙여줌 $mime=mime_content_type('/data/file.instiz.net/data/file2/'.$address); if($mime){ $ext=array_search($mime,$mime_types); if($ext){ $rename='/data/file.instiz.net/data/file2/'.$address.'.'.$ext; if(!is_file($rename)) @rename('/data/file.instiz.net/data/file2/'.$address,$rename); else @unlink('/data/file.instiz.net/data/file2/'.$address); $address=$address.'.'.$ext; $remote='http://file2.instiz.net/data/file2/'.$address; } //부서버로 넘겨줌 if($_SERVER['SERVER_ADDR']=='182.163.203.24'){ curl('http://182.163.203.26/ftp.php?address='.urlencode($address)); }elseif($_SERVER['SERVER_ADDR']=='182.163.203.26'){ curl('http://182.163.203.24/ftp.php?address='.urlencode($address)); } $md5file=md5_file('/data/file.instiz.net/data/file2/'.$address); $post=array('id'=>$id,'no'=>$no,'url'=>$url,'address'=>$address,'remote'=>$remote,'md5file'=>$md5file); $data=curl('http://www.instiz.net/server_input.php',$post); header('location:'.$remote); } exit; }else{ /* $fp=fopen ("/var/tmp/curl.log", "a+"); $data="$url \n"; fwrite($fp, "$data"); fclose($fp); */ $referer=parse_url($url); $ch=curl_init(); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)'); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_VERBOSE,1); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_TIMEOUT,360); curl_setopt($ch,CURLOPT_REFERER,'http://'.$referer['host']); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $file=curl_exec($ch); if(strpos($file,'302 Found')!==false){ curl_setopt($ch,CURLOPT_REFERER,''); $file=curl_exec($ch); } //파일 로딩 후 if($file){ if(!is_dir('/data/file.instiz.net/data/file2/'.$dir)) mkdir('/data/file.instiz.net/data/file2/'.$dir,0777,true); fwrite(fopen('/data/file.instiz.net/data/file2/'.$address,'wb'),$file); //파일명뒤에 확장자를 붙여줌 $mime=mime_content_type('/data/file.instiz.net/data/file2/'.$address); if($mime){ $ext=array_search($mime,$mime_types); if($ext){ include 'lib_img.php'; $rename='/data/file.instiz.net/data/file2/'.$address.'.'.$ext; if(!is_file($rename)) @rename('/data/file.instiz.net/data/file2/'.$address,$rename); else @unlink('/data/file.instiz.net/data/file2/'.$address); $path='/data/file.instiz.net/data/file2/'; $name=$address.'.'.$ext; $size=getimagesize($rename); $md5file=md5_file($path.$name); //최적화 $fsize=filesize($rename); if($fsize>100000&&is_ani($rename)===false){ //if($fsize>100000) $quality=70; //elseif($fsize>40000) $quality=80; //else $quality=90; $quality=70; cropimg($path,$name,$ext,$size[0],$size[1],$quality,1,1); $ext='jpg'; } $address=$address.'.'.$ext; $remote='http://file2.instiz.net/data/file2/'.$address; //부서버로 넘겨줌 if($_SERVER['SERVER_ADDR']=='182.163.203.24'){ curl('http://182.163.203.26/ftp.php?address='.urlencode($address)); }elseif($_SERVER['SERVER_ADDR']=='182.163.203.26'){ curl('http://182.163.203.24/ftp.php?address='.urlencode($address)); } //address는 DB로 들어감 //remote는 memo의 url를 remote로 치환함 $post=array('id'=>$id,'no'=>$no,'url'=>$url,'address'=>$address,'remote'=>$remote,'md5file'=>$md5file); curl('http://www.instiz.net/server_input.php',$post); header('location:'.$remote); exit; } }else @unlink('/data/file.instiz.net/data/file2/'.$address); }else header('location:http://file2.instiz.net/ico_none.png'); }