Miss Maheshwari Ответов: 1

Скачать pdf с помощью MVC httpresponse и angularjs


Я попытался сделать это следующим образом...Пожалуйста, дайте мне понять, где я ошибаюсь.....

с#
....
byte[] bytes = memoryStream.ToArray();
                    memoryStream.Close();
httpResponseMessage.Content = new ByteArrayContent(bytes.ToArray());
                    httpResponseMessage.Content.Headers.Add("x-filename", fileName);
                    httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
                    httpResponseMessage.Content.Headers.ContentDisposition.FileName = fileName;
                    httpResponseMessage.StatusCode = HttpStatusCode.OK;
                    return httpResponseMessage;

в angularjs

$http({
           method: 'post',
           url: basePath + '/profile/downloadpdf_fromedit',
          // data: JSON.stringify($scope.paginginfostmntaccnt),
           responsetype: 'arraybuffer',
           headers: {'content-type': 'application/pdf'},
           //  headers: { 'content-type': 'application/json' }
       })
           .then(function (response) {
             //  console.log(response.data);

               $scope.dataDetail = response.data;
               console.log($scope.dataDetail)

1.               var file = new Blob([response.data], { type: 'application/pdf' });

saveAs(file, 'StatementofAccount.pdf');


//урл-файл:///с:/Пользователи/Тушар/загрузки/StatementofAccount.формат PDF
//не удалось загрузить pdf-файл

2.var file = new Blob([response], { type: 'application/pdf' });

  var fileurl = URL.createObjectURL(file);
                window.open(fileurl);


//url-blob:http: / / localhost:16311 / 02f8d85e-74c0-4ccd-b937-22f02cc3866c

// не удалось загрузить pdf-документ


3.
.success(function (data, status, headers, config) {
            // any required additional processing here 
            var results = [];
            results.data = data;
            results.headers = headers();
            results.status = status;
            results.config = config;

            console.log(results)

                $("#loading").hide();
                headers = headers();

                var filename = headers['x-filename'];

                var contentType = headers['content-type'];
                if (!filename) {
                    filename = headers["x-filename"] || 'statementAccount.pdf';
                }

                var linkElement = document.createElement('a');
                try {
                    var blob = new Blob([data], { type: contentType });
                    var url = window.URL.createObjectURL(blob);

                    linkElement.setAttribute('href', url);
                    linkElement.setAttribute("download", filename);

                    var clickEvent = new MouseEvent("click", {
                        "view": window,
                        "bubbles": true,
                        "cancelable": false
                    });
                    linkElement.dispatchEvent(clickEvent);
                    $("#loading").hide();

                    console.log("filename" + filename);

                } catch (ex) {
                    console.log("catch"+ex);
                    $("#loading").hide();
                }
            })

//урл-файл:///с:/Пользователи/Тушар/загрузки/statementAccount.формат PDF
// не удалось загрузить pdf-документ

Что я уже пробовал:

Код, который я попробовал, я включил в запрос.

1 Ответов

Рейтинг:
0

David_Wimbley

В этой ссылке есть подход,который я бы рекомендовал вам попробовать.

c# - Скачать файл с ASP.NET метод Web API с использованием AngularJS-Stack Overflow[^]

Даже несмотря на то, что он говорит Web Api, код все равно может быть применен к действию MVC, я уверен.