Sep
18
2010
Передача файлов методом POST

Скрипт передачи файлов методом POST.


<?

# (c) Арсеньев Алексей( Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript ) & Vyrus

# $host - Удаленный хост

# $port - Порт на удалённом хосте

# $path - Путь до страницы, которая принимает файл

# $filePath - Путь до файла, который отсылаем

# $fileField - Имя поля file на удаленном хосте

# $fields - Дополнительные поля. Пример array("email" => " Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript ");



function sendFile($host$port="80"$path$filePath$fileName$fileField$fields = array())

{

  
define("CRLF""\r\n");

  
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($fpfgets($fp21024*100));



  
fclose($fp2);



  
fputs($fp$fileHeadersTail);



  
$serverResponse "";

  while(!
feof($fp)) $serverResponse .= fgets($fp4096);

  
fclose($fp);



  return 
$serverResponse;

}

?>


Комментарии
Добавить новый Поиск
Оставить комментарий
Имя:
Email:
 
Веб-сайт:
Тема:
UBB-Код:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Пожалуйста, введите проверочный код, который Вы видите на картинке.
Powered by !JoomlaComment 3.26

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Кто онлайн

Сейчас 57 гостей онлайн