2009-03-31 1 views
0

Итак, проблема в том, что половина приложения написана в классическом asp, а половина - в asp.net. Существует файл PDF (в памяти), который генерируется классическим asp-кодом, который мне нужно использовать с половиной .NET. Я думал о сохранении PDF-файла в FS или DB, и я уверен, что большинство из вас не порекомендуют, потому что ему нужно будет пройти очень медленный процесс сохранения в IO, а затем мне нужно будет вручную очистить после - ненужное создание дополнительных узких мест и точек отказа.Классический ASP: размещение с содержимым файла PDF на странице .NET

Я думал о том, чтобы подражать сообщению с классической страницы ASP с .NET с использованием объектов Server.Transfer или Microsoft.XMLHTTP, но ни один из них не подходит для сценария, поскольку я действительно хочу, чтобы URL-адрес на стороне клиента указывал на страницу .NET aspx. Итак, есть ли простой способ создать POST с классического ASP на .NET-страницу с встроенным PDF-файлом?

Заранее благодарим за любые комментарии или предложения.

ответ

1

Несколько рубить, но ...

Создание формы в классическом 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 или что-то).

+0

Я закончил тем, что сделал это так. Это требует некоторой дополнительной полосы пропускания, но меньше головной боли обслуживания. – Haoest

+0

Ouch ... так, вместо того, чтобы писать на диск, вы крутите его клиенту? Я не могу думать о многих сценариях, где это было бы быстрее .... –

+0

Да, никогда не говорил, что это было довольно ... – squillman

0

Ваш лучший выбор - это, вероятно, FS или DB, учитывая трудности взаимодействия ASP.NET и ASP. Это мой «путь наименьшего сопротивления».

0

Просто напишите его на диск, сохраните имя файла в файле cookie или в строке запроса, и Response.Redirect пользователь. Скорее всего, он будет «достаточно быстрым» и намного проще, чем написание для каждого из них сервера с наименьшим общим знаменателем, доступного через TCP, - который является единственным в памяти способом, о котором я могу думать.