2013-09-17 5 views
1

Я строю систему, которая продает pdf-файлы нашим клиентам. У нас есть сторонняя сторона, которая создает и управляет файлами PDF. Когда совершается покупка, наш api вызывает их api, который возвращает байт [].Как скачать pdf без url

Как мне начать загрузку?

Пример процесса:

Пользователь щелкает Покупка

Javascript делает Ajax вызов ->/API/PurchaseProduct/продукта/информация

C# затем вызывает третья сторона апи аналогичным образом

Возврат является байтом [] - Каков документ

Отсюда я не знаю, должен ли байт [] быть возвращен в браузер или что-то еще должно произойти. Если я верну байт [], значит, javascript должен превратить его в pdf? Должен ли C# повернуть байт [] в pdf, а затем вернуть его?

Я боюсь, что это очень новое, и я не уверен, с чего начать.

Благодаря

Редактировать

Мы используем ASP.Net MVC и наш сайт является одной странице приложения.

Размер файла зависит от того, что приобретено.

+0

содержит ли массив сам PDF-файл? –

+0

какая серверная технология; ASP.NET, MVC? –

+0

Без ссылки на документацию обоих упомянутых API, этот вопрос, вероятно, останется без ответа. – yPhil

ответ

2

В методе, который вызывается AJAX, включают в себя следующее:

Current.Response.ClearHeaders(); 
Current.Response.ClearContent(); 
Current.Response.AppendHeader("Content-Disposition", "attachment; filename=file.pdf"); 
Current.Response.ContentType = "application/pdf"; 
Current.Response.BinaryWrite(returnedByte); 
Current.Response.End(); 

где returnedByte является byte[]

3

Нет способа вернуть файл пользователю через AJAX. Браузер должен запросить файл, используя обычный HTTP-запрос.

Лучшим решением было бы сохранить файл на диск после запроса ajax и затем вернуть путь к клиенту, чтобы файл можно было открыть, как обычно, с помощью, например, window.open.

Смежные вопросы