Вход Регистрация
* -=(C)DRU987=- (Dev)

Передаём файлы методом POST

  1. # $host - Удаленный хост
  2. # $port - Порт на удалённом хосте
  3. # $path - Путь до страницы, которая принимает файл
  4. # $filePath - Путь до файла, который отсылаем
  5. # $fileField - Имя поля file на удаленном хосте
  6. # $fields - Дополнительные поля. Пример array("email" => "aaaa@mail.ru");
  7.  
  8. function sendFile($host, $port="80", $path, $filePath, $fileName, $fileField, $fields = array())
  9. {
  10. define("CRLF", "\r\n");
  11. define("DCRLF", CRLF.CRLF);
  12.  
  13. $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
  14.  
  15. $fieldsData = "";
  16.  
  17. if(count($fields) > "0"):
  18. foreach($fields as $field => $value)
  19. {
  20. $fieldsData .= "--".$boundary.CRLF;
  21. $fieldsData .= "Content-Disposition: form-data; name=\"".$field."\"".DCRLF;
  22. $fieldsData .= urlencode($value).CRLF;
  23. }
  24. endif;
  25.  
  26. $fileHeaders = "--".$boundary.CRLF;
  27. $fileHeaders .= "Content-Disposition: form-data; name=\"".$fileField."\"; filename=\"".$fileName."\"".CRLF;
  28. $fileHeaders .= "Content-Type: ".mime_content_type($filePath).DCRLF;
  29. $fileHeadersTail = CRLF."--".$boundary."--".CRLF;
  30.  
  31. $filesize = filesize($filePath);
  32. $contentLength = strlen($fieldsData) + strlen($fileHeaders) + $filesize + strlen($fileHeadersTail);
  33.  
  34. $headers = "POST $path HTTP/1.0".CRLF;
  35. $headers .= "Host: ".$host.CRLF;
  36. $headers .= "Referer: ".$host.CRLF;
  37. $headers .= "Content-type: multipart/form-data, boundary=".$boundary.CRLF;
  38. $headers .= "Content-length: ".$contentLength.DCRLF;
  39. $headers .= $fieldsData;
  40. $headers .= $fileHeaders;
  41.  
  42. if(!$fp = fsockopen($host, $port)) return false;
  43. fputs($fp, $headers);
  44.  
  45. $fp2 = fopen($filePath, "rb");
  46.  
  47. while(!feof($fp2)) fputs($fp, fgets($fp2, 1024*100));
  48.  
  49. fclose($fp2);
  50.  
  51. fputs($fp, $fileHeadersTail);
  52.  
  53. $serverResponse = "";
  54. while(!feof($fp)) $serverResponse .= fgets($fp, 4096);
  55. fclose($fp);
  56.  
  57. return $serverResponse;
  58. }
» Описание: Скрипт передачи файлов методом POST
» Время добавления: 4 Янв 2015 в 17:37
» Посмотров: 1462
» textarea
» Рейтинг: [+0 | -0]
Комментарии [0]
Онлайн: 0
Реклама