Документ должен быть загружен в загруженном формате ( word(doc, docx) или ppt(ppt, pptx), excel или jpeg, PDF или gif или png)
Всем Привет,
Я пытаюсь загрузить файл, но после загрузки нет никакого контента.Пожалуйста, помогите мне решить эту проблему.Ниже приведен мой код.
Код Веб-API
-------------
[Authorize] [HttpPost] [Route("downloadStaticDocument")] public HttpResponseMessage downloadStaticDocument(OrderItemReview order) { HttpResponseMessage httpResponseMessage = new HttpResponseMessage(); string fileName = ""; string fileExtension = ""; byte[] dataStream = new byte[0]; string downloadName = order.itemDetails.staticDocumentName; try { Log.Debug("starting downloadStaticDocument"); dataStream = Convert.FromBase64String(order.itemDetails.staticDocumentBase64); Log.Debug("fetching file names"); fileName = Path.GetFileNameWithoutExtension(downloadName); fileExtension = Path.GetExtension(downloadName); Log.Debug("fileName : " + fileName); Log.Debug("fileExtension : " + fileExtension); httpResponseMessage.Content = new ByteArrayContent(dataStream.ToArray()); httpResponseMessage.Content.Headers.Add("x-filename", fileName); //httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue(GetMimeType(fileExtension)); httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); string contentType = string.Empty; string ext = Path.GetExtension(downloadName).ToLower(); switch (ext) { case ".pdf": contentType = "application/pdf"; break; case ".doc": case ".docx": contentType = "application/msword"; break; case ".xls": case ".xlsx": contentType = "application/vnd.ms-excel"; break; case ".txt": contentType = "text/plain"; break; case ".jpg": contentType = "image/JPEG"; break; case ".png": contentType = "image/PNG"; break; case ".rtf": contentType = "application/rtf"; break; default: break; } httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType); return httpResponseMessage; } catch (Exception ex) { Log.Error(ex); return this.Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } }
Код вызова службы Angularjs
--------------------
var _downloadStaticDocument = function (orderDetails) { debugger; var request = $http({ method: "post", url: serviceBase + "api/orders/downloadStaticDocument", data: orderDetails, responseType: 'arraybuffer' }); return request; }
AngularJs скачать код функции
---------------------------------
$scope.downloadStaticDocument = function (orderDetails) { debugger; $rootScope.isLoading = true; $scope.ProcessFileName = orderDetails.itemDetails.productFullName + ".pdf"; var promise = ordersManagementService.downloadStaticDocument(orderDetails); promise.then(function (response) { //for IE Compatibility to dowload blob data var anchor = angular.element('<a/>'); var blob = new Blob([response.data]); var fileName = orderDetails.itemDetails.productName; if (window.navigator && window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveOrOpenBlob(blob); $rootScope.isLoading = false; } else { anchor.attr({ href: window.URL.createObjectURL(blob), target: '_blank', download: $scope.ProcessFileName })[0].click(); $rootScope.isLoading = false; } ngToast.create({ content: fileName + " Downloaded successfully.", className: 'success', dismissOnTimeout: true, timeout: 6000 }); }, function (error) { ngToast.create({ content: error.data.message, className: 'error', dismissOnTimeout: true, timeout: 6000 }); }); }
Что я уже пробовал:
Я не могу определить причину.Не могли бы вы кто нибудь помочь мне в этом
Mehul M Thakkar
вы пробовали отлаживать и видеть ошибки?
Member 10033441
Да..Я пробовал и подозреваю как в нижеприведенной строке
$масштаб.ProcessFileName = "заказано".- технические характеристики -.productFullName + ".формат PDF";
потому что когда я меняю эту строку, как ниже
$масштаб.ProcessFileName = "заказано".- технические характеристики -.productFullName + ".файлы DOCX"; затем он загружает файл docx.
Поэтому, пожалуйста, помогите мне написать условие для проверки типа файла перед загрузкой.Если вам нужна какая-то дополнительная информация, то она очень ценна.
Member 10033441
Может ли какой-нибудь орган, пожалуйста, изучить этот вопрос