На IIS Express все работает отлично. Переношу на сервер - при попытке скачать файл пишет "Не удалось скачать". Хотя физически он в папке inetpub есть. Права пользователю IUSRS дал полные на папку inetpub
var date = DateTime.Parse(model.Date).ToString("dd.MM.yyyy h:MM:ss");
string newstring = client.HelloBaza(normalUser, date);
System.IO.File.WriteAllBytes(Server.MapPath("~/"+normalUser+".xlsx"), Convert.FromBase64String(newstring));
string filepath = Server.MapPath("~/" + normalUser + ".xlsx");
byte[] filedata = System.IO.File.ReadAllBytes(filepath);
string contentType = MimeMapping.GetMimeMapping(filepath);
var cd = new System.Net.Mime.ContentDisposition
{
FileName = normalUser + ".xlsx",
Inline = true,
};
Response.AppendHeader("Content-Disposition", cd.ToString());
return File(filedata, contentType);
Рассмотрю несколько случаев.
Кажется не первый раз спрашивают как сгенерировать файл "на лету" приведу пример
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition",
"attachment; filename="+normalUser + ".xlsx");
Response.Write(filedata); // filedata - массив байт
Response.End();
Список ContentType тут
Часто генераторы умеют работать с Stream, тогда запись будет примерно такой
DataTable dt = new DataTable(); // Например
Response.Clear();
Response.ContentType = "text/xml";
Response.AppendHeader("Content-Disposition",
"attachment; filename="+normalUser + ".xml");
dt.WriteXml(Response.OutputStream);
Response.End();
Если нужно передать файл (пробросить с подменой имени или без), то это делается так Передача файла
Если нужно просто дать добро на скачивание файлов с определенным разширением с папки, то нужно просто в web.config дописать Copy-обработчик
<configuration>
<system.web>
<compilation>
<buildProviders>
<add extension=".xlsx"
type="System.Web.Compilation.ForceCopyBuildProvider" />
</buildProviders>
Разрешение можно дать как для определенного каталога (рекомендуется), так и для всего пула (так проще).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я в программе узнаю директорию в какой расположен исполняемый файл программы, как создать в ней текстовый файл?
Как правильно осуществлять сохранение и загрузку массива дат DateTime? Сейчас я осуществляю сохранение массива вот такПравильно ли я делаю...
Пытаюсь адаптировать виндовое C# WinForm приложение для работы в LinuxВ Linux установлено Mono, т
Как обратиться к уже запущенному на компьютере процессу, прочитать линию или подать новую командуДопустим на компьютере запущен Process