|
|
|
| Всем привет. У меня возикла проблема при отправки фала методом POST посредсвом PHP без использовании формы. Вот код скрипта:
<?php
$hostname = "";
$port = 80;
$path = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if(!$fp) echo "$errstr ($errno)<br />\n";
else
{
$pathfile = "C:/server/www/photo.jpg";
$fp2 = fopen($pathfile,"rb");
$file = fread($fp2, filesize($pathfile));
fclose($fp2);
$filesize = filesize($pathfile);
$boundary = "-----------------------------".substr(md5(rand(0,32000)),0,10);
$dataend = "--".$boundary."--\r\n";
$fields = "--".$boundary."\r\n";
$fields .= "Content-Disposition: form-data; name=\"action\"\r\n\r\npost\r\n";
$fields .= "--".$boundary."\r\n";
$fields .= "Content-Disposition: form-data; name=\"id_client\"\r\n\r\n46\r\n";
$fields .= "--".$boundary."\r\n";
$fields .= "Content-Disposition: form-data; name=\"add\"\r\n\r\nЗагрузить фото\r\n";
$fields .= $dataend;
$data = "--".$boundary."\r\n";
$data .= "Content-Disposition: form-data; name=\"File_0\"; filename=\"C:/server/www/photo.jpg\"\r\n";
$data .= "Content-Type: image/pjpeg\r\n\r\n";
$contentLength = strlen($data);
$data .= "$file\r\n";
$data .= $fields;
$contentLength .= $filesize + strlen($fields);
$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-icq, */*\r\n";
$headers .= "Referer: http://localhost/photo/addphoto.php\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "Content-Type: multipart/form-data; boundary=".$boundary."\r\n";
$headers .= "Accept-Encoding: gzip, deflate\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-Length: $contentLength\r\n";
$headers .= "Connection: Keep-Alive\r\n";
$headers .= "Cache-Control: no-cache\r\n";
$headers .= "Cookie: PHPSESSID=56d1a3e61979fcc9ca900af5bdeb3888; login=login; id_session=37c76d7e12f98bc3a2e3bdcca9fc5787\r\n";
$headers .= "Authorization: Basic YWRtaW46MzBh5TE5ODF5\r\n\r\n";
fwrite($fp, $headers.$data);
}
fclose($fp);
?>
|
При отправки файла со своего компьютера к себе на локал хост - все работает нормально. Но отправить файл со свого компа к себе на сайт не получается. Пробовал даже с помощью сниффера проанализировать заголовки пакетов - все индетично. В чем может быть тут проблема и что я сделал не так | |
|
|
|
|
|
|
|
для: sashay
(28.04.2008 в 11:56)
| | Не ужели никто мне не может помочь? | |
|
|
|
|
|
|
|
для: sashay
(29.04.2008 в 10:44)
| | Так в чем проблема то? | |
|
|
|