Если в тексте присутствуют переносы строки (\r\n), то естественно сервер неправильно разделяет заголовки.
мне пришла в голову мысль закодировать файл в base64
$data = '--'.$boundary."\r\n";
$data .= 'Content-Disposition: form-data; name="'.$filedata.'"; filename="'.$file.'"'."\r\n";
$data .= 'Content-Type: '.$filetype."\r\n";
$data .= 'Content-Transfer-Encoding: base64'."\r\n\r\n";
$data .= chunk_split(base64_encode(file_get_contents($file)));
$data .= "\r\n";
но на сервак файл собственно приходит закодированным.
Можно в заголовках объяснить серверу, что надо раскодировать автоматически?
Если нет, то как еще можно передать файл текстовый с переносами?
вот какие заголовки я отправляю
POST /test.php HTTP/1.0
host: test.ru
protocol: HTTP/1.0
user-agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/12.11
referer: http://google.com
content-type: multipart/form-data; boundary=135506719650c4af3c319e8
accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
accept-language: ru,en-us;q=0.7,en;q=0.3
content-length: 55151
connection: keep-alive
keep-alive: 300