Классический ЖЕРЕХ:публикация содержимого PDF-файла на странице .NET

StackOverflow https://stackoverflow.com/questions/699687

  •  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 для них обоих - это единственный способ сделать это в памяти, который я могу придумать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top