Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузить файл на удалённый сервер через сокеты (PHP)
 
 автор: Бамси   (23.10.2007 в 23:22)   письмо автору
 
 

Поделитесь опытом, кто пробывал загружать файлы через сокеты? Например через формочки на сайтах, мол для загрузки картинок. Я как посмотрел что там передается, честно говоря немного прифигел.

   
 
 автор: Unkind   (23.10.2007 в 23:42)   письмо автору
 
   для: Бамси   (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(0strlen($chrs) - 1)];
    }

    return 
$s;
}

$fp fsockopen($host$port$errno$errstr10) or die();

$boundary random_string20 );

$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($fpimplode("\r\n"$headers) . "\r\n" $data);

    while(!
feof($fp)) echo fread($fp1024);

    
fclose($fp);
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования