Скачать одно бинарное вложение и отличить пустой файл от отсутствующего

Результат настоящих запросов через PDO_SQLSRV. Собственные учебные объекты после наблюдений удалены.

Результат выполнения
НаблюдениеРезультат
ВложениеАкт монтажа
Байт получено21
HEX50444f31373700ff0d0a4154544143484d454e540a
Содержимое совпало с источникомда
Три состоянияFILE:21; EMPTY; NULL
Файлattachment.bin
Полученные строки и наблюдения
{
    "selected_metadata": [
        {
            "id": "1",
            "title": "Акт монтажа",
            "is_missing": "0",
            "byte_count": "21"
        },
        {
            "id": "2",
            "title": "Пустой шаблон",
            "is_missing": "0",
            "byte_count": "0"
        },
        {
            "id": "3",
            "title": "Файл ожидается",
            "is_missing": "1",
            "byte_count": null
        }
    ],
    "states": [
        "FILE:21",
        "EMPTY",
        "NULL"
    ],
    "input_after_execute": "resource (stream)",
    "received_type": "string",
    "bytes": 21,
    "sha256": "847bdc11a5462cebecbd9409a0e98f99194f18f19ec00a231142732198403225",
    "hex": "50444f31373700ff0d0a4154544143484d454e540a",
    "server_streaming_fetch_claim": false
}

result.json содержит те же данные. Реквизиты входа сюда не записываются.