Я хочу прочитать двоичные данные из файла и отправить его в удаленное приложение Java. Как я нашел here: я могу получить его, как это (часть моего кода):Echo двоичные данные в php, так что код Java
else
{
$fp = fopen("binary file","rb");
$vector="";
while (!feof($fp)) {
// Read the file, in chunks of 16 byte
$data = fread($fp,16);
$arr = unpack("C*",$data);
foreach ($arr as $key => $value) {
$vector.=" ".$value;
}
$vector.="\n";
}
}
Я посылаю некоторые заголовки
header("Content-Type: multipart/related; boundary=bounary----I don't know if boundary value is private".$eol);
header("MIME-Version: 1.0".$eol);
header("Connection: Keep-Alive".$eol);
header("Accept-Encoding: gzip, deflate".$eol);
header("Host: host".$eol.$eol);
header("Content-Type: multipart/related; boundary=bounary----I don't know if boundary value is private".$eol);
header("Content-Type: multipart/related; boundary=bounary----I don't know if boundary value is private".$eol);
Тогда я печатаю это так:
echo "--".$BOUNDARY.$eol;
echo "Content-Type: application/octet-stream".$eol;
echo "Content-Length: ".strlen($vector).$eol;
echo "Content-Transfer-Encoding: binary".$eol;
echo $eol.$vector.$eol;
echo "--".$BOUNDARY."--".$eol;
Я тестирую его в приложении Advanced Rest Client и вижу двоичные данные:
0 0 0 72 0 54 0 55 0 97 0 56 0 51 0 49
0 101 0 56 0 45 0 53 0 102 0 48 0 56 0 45
0 52 0 100 0 49 0 99 0 45 0 97 0 57 0 57
0 52 0 45 0 101 0 101 0 53 0 97 0 51 0 52
0 49 0 52 0 50 0 54 0 57 0 51 0 0 0 1
0 0 0 0 4 0 0 1 0 0 0 0 1 0 0 0...
Но Java-кодер говорит, что вместо двоичных данных есть пустая строка? Как я могу правильно эхо-повторить эти двоичные данные? Что может вызвать эту проблему?
Update: Мы обнаружили, что независимо от того, что Content-Length заголовок я установил в своем приложении он получает заголовок: Content-Length: 475 Однако в клиенте Advanced Rest я вижу свою ценность контента длины , Это может вызвать проблемы. Может ли это быть вызвано php каким-то образом?
Собирайтесь проверить это сейчас. –
Результат тот же = ( –