<?php
function sendFile($host, $port= "80" , $path, $filePath, $fileName, $fileField, $fields = array
())
{
define( "CRLF" , "rn" );
define( "DCRLF" , CRLF.CRLF);
$boundary =
"---------------------" .substr(md5(rand( 0, 32000)), 0 ,10 );
$fieldsData = "";
if (count($fields) > "0" ):
foreach ($fields as $field => $value)
{
$fieldsData .= "--" .$boundary.CRLF;
$fieldsData .=
"Content-Disposition: form-data; name="".$field.""" .DCRLF;
$fieldsData .= urlencode($value).CRLF;
}
endif ;
$fileHeaders = "--" .$boundary.CRLF;
$fileHeaders .= "Content-Disposition: form-data; name="".$fileField.""; filename="".$fileName.""" .CRLF;
$fileHeaders .= "Content-Type: " .mime_content_type($filePath).DCRLF;
$fileHeadersTail = CRLF. "--" .$boundary. "--" .CRLF;
$filesize = filesize($filePath);
$contentLength = strlen($fieldsData) + strlen($fileHeaders) + $filesize + strlen($fileHeadersTail);
$headers = "POST $path HTTP/1.0" .CRLF;
$headers .= "Host: " .$host.CRLF;
$headers .= "Referer: " .$host.CRLF;
$headers .= "Content-type: multipart/form-data, boundary=" .$boundary.CRLF;
$headers .= "Content-length: " .$contentLength.DCRLF;
$headers .= $fieldsData;
$headers .= $fileHeaders;
if (!$fp = fsockopen($host, $port)) return
false ;
fputs($fp, $headers);
$fp2 = fopen($filePath,
"rb" );
while (!feof($fp2)) fputs($fp, fgets($fp2,
1024* 100 ));
fclose($fp2);
fputs($fp, $fileHeadersTail);
$serverResponse = "";
while (!feof($fp)) $serverResponse .= fgets($fp, 4096);
fclose($fp);
return $serverResponse;
}
?>