PHP用Socket上傳圖片
服務器端:
<?phpset_time_limit(10);//* 設置不顯示任何錯誤 *///error_reporting(0);
function varinfo($str) {echo '<pre>';var_dump($str);echo '<pre>';}
$commonProtocol = getprotobyname('tcp');$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);if ($socket) {$result = socket_bind($socket, '192.168.3.57', 1337);if ($result) { $result = socket_listen($socket, 5); if ($result) { echo '監聽成功'; }}}else{echo '監聽失敗';}
//$path = '/home/upload/';$path = 'e://web//';
while (true){$connection = socket_accept($socket);if($connection){ $msg = 'telnet succeed!rn'; socket_write($connection, $msg, strlen($msg)); $BufferPond = array(); $buffer = '';
while($flag = socket_recv($connection, $buffer, 1024, 0)){; if (false !== strpos($buffer,'filename:')){ $filename = substr($buffer,9); $filename = $path.$filename; $fp = fopen($filename,'wb'); continue;; }; fwrite($fp,$buffer); } fclose($fp); socket_close($connection);;};};socket_close($socket);?>
客戶端:<?php$errno='001';$errstr='socket file error';
$fp = fsockopen('192.168.3.57', 1337, $errno, $errstr, 10);if (!$fp) {; echo '$errstr ($errno)<br />n';;} else {; $str = 'filename:socket_file.bmp';; fwrite($fp, $str);;$out = file_get_contents('../../iphone3G.bmp');; if($out){ fwrite($fp, $out);; fwrite($fp,'over'); echo '上傳成功'; } }fclose($fp);?>
