Я написал модуль IIS, и он работает нормально. Я хочу получить опубликованный файл из запроса.
В приведенном ниже коде я могу получить отправленные данные формы и просмотреть файл в заголовке:
IHttpRequest * pHttpRequest = pHttpContext->GetRequest();
if (pHttpRequest != NULL)
{
LPCSTR body;
DWORD cbBytesReceived = 1024;
void * pvRequestBody = pHttpContext->AllocateRequestMemory(cbBytesReceived);
if (NULL == pvRequestBody)
{
pProvider->SetErrorStatus(hr);
return RQ_NOTIFICATION_FINISH_REQUEST;
}
if (pHttpRequest->GetRemainingEntityBytes() > 0)
{
while (pHttpRequest->GetRemainingEntityBytes() != 0)
{
hr = pHttpRequest->ReadEntityBody(
pvRequestBody, cbBytesReceived, false, &cbBytesReceived, NULL);
if (FAILED(hr))
{
if (ERROR_HANDLE_EOF != (hr & 0x0000FFFF))
{
pProvider->SetErrorStatus(hr);
return RQ_NOTIFICATION_FINISH_REQUEST;
}
}
body = (LPCSTR)pvRequestBody;
pszResult = pszResult + body;
}
}
}
Результат:
-----------------------5r707ac9a9687yu
Content-Disposition: form-data; name="file"; filename="1.zip"
Content-Type: application/octet-stream
PKþóÐMš`_ÿív(X[úM/xvœ5a¢~¯²²ÊÆÎÈá"}å
lIœì*7·®-W§Xþn¹DçvÃŒØÀ>ÊHñ\N-kÂ¥ûºÂm'ŒäõÚÌŸÏŽ)ããSqŽT3ÕïDñ?ËWÇKy«zAÉ÷øŒ¿ÂÇ
Я попытался преобразовать часть файла (PKþóÐMš`_ÿív ...) в двоичный файл и записать файл, но файл обрезан, потому что заголовок содержит всю информацию (все опубликованные файлы, содержимое, ...), а не очистить двоичный файл.
Как записать отправленные файлы на диск (двоичный / текстовый)?