|
|
|
| Поделитесь опытом, кто пробывал загружать файлы через сокеты? Например через формочки на сайтах, мол для загрузки картинок. Я как посмотрел что там передается, честно говоря немного прифигел. | |
|
|
|
|
|
|
|
для: Бамси
(23.10.2007 в 23:22)
| |
<?php
$pu = parse_url( 'http://example.com/' );
$port = isset($pu['port']) ? $pu['port'] : 80;
$path = isset($pu['path']) ? $pu['path'] : '/';
$path = isset($pu['query']) ? $path . '?' . $pu['query'] : $path;
$host = $pu['host'];
function random_string($len)
{
$chrs = 'AaBbCcDdEeFf0123456789';
for($s = '', $i = 0; $i < $len; $i++)
{
$s .= $chrs[rand(0, strlen($chrs) - 1)];
}
return $s;
}
$fp = fsockopen($host, $port, $errno, $errstr, 10) or die();
$boundary = random_string( 20 );
$data = "";
$data .= "--" . $boundary . "\r\n";
$data .= "Content-Disposition: form-data; name='text'\r\n\r\n";
$data .= "Значение текстового поля 'text'\r\n";
$data .= "--" . $boundary . "\r\n\r\n";
$data .= "--" . $boundary . "\r\n";
$data .= "Content-Disposition: form-data; name='file'; filename='file.txt'\r\n";
$data .= "Content-Type: text/plain\r\n\r\n";
$data .= "Содержимое передаваемого файла 'file.txt'\r\n";
$data .= "--" . $boundary . "--\r\n\r\n";
$headers[] = 'POST ' . $path . ' HTTP/1.0';
$headers[] = 'Host: ' . $host;
$headers[] = 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01';
$headers[] = 'Referer: http://example.com/form.html';
$headers[] = 'Content-type: multipart/form-data; boundary=' . $boundary;
$headers[] = 'Content-Length: ' . strlen($data);
if($fp)
{
fwrite($fp, implode("\r\n", $headers) . "\r\n" . $data);
while(!feof($fp)) echo fread($fp, 1024);
fclose($fp);
}
?>
|
| |
|
|
|