송신
function socketTrans($host,$sendPort,$receivePath,$file_name,$tfile){
$port = $sendPort; // 원격 서버 포트
$path = $receivePath; // 화일을 받아서 처리해주는 화일명 /reomote_url
srand((double)microtime()*1000000);
$boundary = "---------------------------".substr(md5(rand(0,32000)),0,10);
// Build the header
$header = "POST $path HTTP/1.0\r\n";
$header .= "Host: $host\r\n";
$header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data .= "\r\n".$value."\r\n";
$data .="--$boundary\r\n";
// and attach the file
$data .= "--$boundary\r\n";
//$content_file = join("", file("./up/".$file_name));
$content_file = join("", file($tfile));
$data .="Content-Disposition: form-data; name=\"upfile\"; filename=\"$file_name\"; filename=\"$file_name\"\r\n";
$data .= "Content-Type: $content_type\r\n\r\n";
$data .= "".$content_file."\r\n";
$data .="--$boundary--\r\n";
$header .= "Content-length: " . strlen($data) . "\r\n\r\n";
// Open the connection
$f = fsockopen($host, $port);
if(!@$f){
echo "<script language='javascript'>
alert('$host 소켓이상입니다.');
</script>";
} else {
fputs($f,$header.$data);
while (!feof($f)) $result .= fread($f,32000); //
}
}
/////////////////////////
수신
if (!@copy($_FILES['upfile']['tmp_name'], $upDirectory.$_FILES['upfile']['name'])) {
//원본 파일 복사도중 에러
echo "<script language='javascript'>
alert('원본 파일을 복사하는도중 에러가 발생했습니다.\\n관리자에게 문의하여 주십시오');
</script>";
}
//move_uploaded_file($_FILES['upfile']['tmp_name'], './'.$_FILES['upfile']['name']);
if (!@unlink($_FILES['upfile']['tmp_name'])) {
//원본 파일 삭제도중 에러
echo "<script language='javascript'>
alert('원본 파일을 삭제하는도중 에러가 발생했습니다.\\n업로드는 완료되었습니다');
</script>";
}
'프로그래밍 > PHP' 카테고리의 다른 글
PHP 소켓 POST로.. XML 값 (0) | 2009.04.14 |
---|---|
[정보] HTTP/1.1 METHOD 의 종류와 아파치에서의 제어 (0) | 2008.10.16 |
파일 전송 인터페이스 만들기 (0) | 2008.10.16 |
PHP 코드를 최적화하는 40가지 팁 (0) | 2008.08.21 |
[함수] 본문에서 주민번호 패턴 찾아내기... (0) | 2008.08.12 |