private async Task RenderReturnedFile(IHttpContext context, IReturnedFileStorage returnedFileStorage)
        {
            const string         attachmentDispositionType = "attachment";
            ReturnedFileMetadata metadata;

            var id = Guid.Parse(context.Request.Query["id"]);

            using (var stream = returnedFileStorage.GetFile(id, out metadata))
            {
#if DotNetCore
                var contentDispositionValue = new ContentDispositionHeaderValue(attachmentDispositionType);
                contentDispositionValue.SetHttpFileName(metadata.FileName);
                context.Response.Headers[HeaderNames.ContentDisposition] = contentDispositionValue.ToString();
#else
                var contentDispositionValue = new ContentDispositionHeaderValue(attachmentDispositionType)
                {
                    FileName     = metadata.FileName,
                    FileNameStar = metadata.FileName
                };
                context.Response.Headers["Content-Disposition"] = contentDispositionValue.ToString();
#endif
                context.Response.ContentType = metadata.MimeType;
                if (metadata.AdditionalHeaders != null)
                {
                    foreach (var header in metadata.AdditionalHeaders)
                    {
                        context.Response.Headers.Add(new KeyValuePair <string, string[]>(header.Key, header.Value));
                    }
                }

                context.Response.StatusCode = (int)HttpStatusCode.OK;
                await stream.CopyToAsync(context.Response.Body);
            }
        }
Exemple #2
0
        private async Task RenderReturnedFile(IHttpContext context, IReturnedFileStorage returnedFileStorage)
        {
            ReturnedFileMetadata metadata;

            var id = Guid.Parse(context.Request.Query["id"]);

            using (var stream = returnedFileStorage.GetFile(id, out metadata))
            {
                context.Response.Headers["Content-Disposition"] = "attachment; filename=" + metadata.FileName;
                context.Response.ContentType = metadata.MimeType;
                if (metadata.AdditionalHeaders != null)
                {
                    foreach (var header in metadata.AdditionalHeaders)
                    {
                        context.Response.Headers.Add(new KeyValuePair <string, string[]>(header.Key, header.Value));
                    }
                }

                context.Response.StatusCode = (int)HttpStatusCode.OK;
                await stream.CopyToAsync(context.Response.Body);
            }
        }
 public ReportTempFilesPresenter(IReturnedFileStorage returnedFileStorage)
 {
     this.returnedFileStorage = returnedFileStorage;
 }
 public DefaultViewModel(IWebHostEnvironment webHostEnvironment, IReturnedFileStorage returnedFileStorage)
 {
     this.webHostEnvironment  = webHostEnvironment;
     this.returnedFileStorage = returnedFileStorage;
 }