微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

文件下载不提示在ASP.NET Core中下载

如何解决文件下载不提示在ASP.NET Core中下载

我一直在努力获取要下载的pdf文件到我的应用程序中。我想我做对了所有事情,代码执行成功并且没有错误,但是仍然没有下载提示

我创建了一个新项目来尝试相同的代码,并且运行顺利并提示下载。

一段时间后,我决定离开该应用程序,然后回到应用程序中进行其他操作。 我实现了另一个文件下载,该文件也不起作用。在这一点上,我觉得肯定有问题,但是我无法弄清楚。

第一种下载方法在这里,我将HTML字符串转换为pdf并将其下载到系统中。 我正在使用同步融合,

 public IActionResult ExportToPDF(string htmlContent)
        {
            //Initialize HTML to PDF converter 
            HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter(HtmlRenderingEngine.WebKit);
            WebKitConverterSettings settings = new WebKitConverterSettings();

            

            //Set WebKit path
            settings.WebKitPath = Path.Combine(_webHostEnvironment.ContentRootPath,"QtBinariesWindows");
            //Assign WebKit settings to HTML converter
            htmlConverter.ConverterSettings = settings;

            //HTML string and Base URL 
            string htmlText = htmlContent;
            string baseUrl = Path.Combine(_webHostEnvironment.ContentRootPath,"img");
        
            PdfDocument document = htmlConverter.Convert(htmlText,baseUrl);

            MemoryStream stream = new MemoryStream();
            document.Save(stream);
            return File(stream.ToArray(),System.Net.Mime.MediaTypeNames.Application.Pdf,"HtmlOutput.pdf");
        }

第二个在这里 用这种方法,我在www文件夹中有一个文件夹。它是一个样本。我希望用户下载示例文件

 public async Task<IActionResult> DownloadSampleFile()
        {
            // Since this is just and example,I am using a local file located inside wwwroot
            var path = Path.Combine(_hostingEnvironment.WebrootPath,"FC_Customer.xlsx");
            var memory = new MemoryStream();
            using (var stream = new FileStream(path,FileMode.Open))
            {
                await stream.copyToAsync(memory);
            }
            memory.Position = 0;
            var ext = Path.GetExtension(path).ToLowerInvariant();
            return File(memory,GetMimeTypes()[ext],Path.GetFileName(path));
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。