#c# #asp.net-mvc #file #asp.net-core
#c# #asp.net-mvc #файл #asp.net-core
Вопрос:
Я изо всех сил пытался загрузить PDF-файл в свое приложение. Я думаю, что я все сделал правильно, выполнение кода прошло успешно без ошибок, но по-прежнему нет запроса на загрузку.
Я создал новый проект, чтобы попробовать тот же код, и он прошел успешно с запросом на загрузку.
Через некоторое время я решил оставить это и сделать другие вещи в приложении, пока я вернусь к нему. Я осуществляю загрузку другого файла, который также не работает. На данный момент я чувствую, что что-то определенно не так, но я не могу понять это.
Первый метод загрузки. Здесь я конвертирую HTML-строку в pdf и загружаю ее в систему. Я использую syncfusion,
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));
}
Комментарии:
1. Работает ли это при локальной отладке?
2. Приложение все еще находится на локальном хостинге, еще не развернуто в рабочей среде. И он успешно запускается, но нет приглашения / диалогового окна для загрузки
3. Используете ли вы Chrome? Отображается ли загрузка автоматически в ваших загрузках без запроса?
4. В настоящее время я использую Microsoft Edge, и загрузка не отображается в моей папке загрузки
5. Попробуйте это и скажите мне, работает ли это: pastebin.com/95AuExZb Заполните свой собственный файл на вашем диске