Классический ЖЕРЕХ:публикация содержимого PDF-файла на странице .NET
-
22-08-2019 - |
Вопрос
Итак, проблема в том, что половина приложения написана на классическом asp, а половина - на asp.net.Есть PDF-файл (в памяти), сгенерированный классическим кодом asp, которым мне нужно поделиться с .ЧИСТАЯ половина.Я подумал о сохранении PDF-файла в FS или DB, что, я почти уверен, большинство из вас не рекомендовали бы, потому что для этого потребовался бы очень медленный процесс сохранения в IO, а затем мне нужно было бы вручную выполнить очистку после - ненужное создание дополнительных узких мест и точек отказа.
Я подумал о том, чтобы скопировать сообщение с классической страницы asp на .NET с помощью Server.Передача или объекты Microsoft.XMLHTTP, но ни то, ни другое точно не соответствует сценарию, поскольку я действительно хочу, чтобы URL-адрес на стороне клиента указывал на .Страница NET aspx.Итак, есть ли простой способ создать СООБЩЕНИЕ из классического ASP на страницу .NET со встроенным PDF-файлом?
Заранее благодарю за любые комментарии или предложения.
Решение
В некотором роде халтура, но...
Создайте форму в классическом ASP с полем, которое вы заполняете данными из PDF-файла.Действием формы будет являться ASP.NET страница.Что - то вроде:
<body onload="pdfsenderform.submit()">
<form name="pdfsenderform" action="pdf.aspx" method="post">
<input type="hidden" name="pdffiledata" value="<%...output your PDF data here...%>" />
</form>
</body>
Возможно, вам потребуется закодировать двоичные данные PDF перед записью их в поле формы (Base64 или что-то в этом роде).
Другие советы
Вероятно, ваш лучший выбор - это FS или DB, учитывая трудности ASP.NET и взаимодействие с ASP.Это мой "путь наименьшего сопротивления".
Просто запишите это на диск, сохраните имя файла в файле cookie или строке запроса и ответьте.Перенаправьте пользователя.Вероятно, это будет "достаточно быстро" и намного проще, чем написать сервер состояний с наименьшим общим знаменателем, доступный по протоколу TCP для них обоих - это единственный способ сделать это в памяти, который я могу придумать.