В настоящее время я работаю над веб-приложением, использующим C# и Asp.Net MVC. На одной из страниц у меня есть требование, когда пользователи могут загружать файлы и заполнять соответствующие данные, а затем загружать их. Из-за некоторых пользователей, имеющих старую машину, я работаю с .xls
и .xlsx
. Какой файл можно загрузить, основан на выпадающем значении, которое пользователь должен выбрать.Используя тот же метод для загрузки другого файла
У меня есть две кнопки один для .xls
и один для файла xlsx
. Мой вопрос в том, как я могу использовать один и тот же код для обмена между файлами. Поэтому, если нажата кнопка .xls
, пользователь получает файл .xls
, а если другой щелчок, то они получают файл .xlsx
.
Это мой код до сих пор:
public FileResult DownloadTemplates(string policyType)
{
string templateName = string.Empty;
string baseDirectory = "base path";
string templateDirectory = "temnplate directory path";
switch (policyType)
{
case "Administrative":
templateName = "Admin Xls File"; //How can I swap between the .xls and .xlsx file?
break;
case "Policy":
templateName = "Policy Xls File"; //How can I swap between the .xls and .xlsx file?
break;
case "Consignment":
templateName = "Consignment Xls File"; //How can I swap between the .xls and .xlsx file?
break;
case "Quality":
templateName = "Quality Xls file"; //How can I swap between the .xls and .xlsx file?
break;
default:
templateName = string.Empty;
break;
}
string filePath = Path.Combine(baseDirectory, templateDirectory, templateName);
byte[] fileData = System.IO.File.ReadAllBytes(filePath);
string contentType = MimeMapping.GetMimeMapping(filePath);
return File(fileData, contentType);
}
Как этот метод знает, если он предназначен для XLS или XLSX? Кажется, вы не передали параметр для этого, и нет «отправителя», чтобы увидеть, какая кнопка была нажата. Почему бы просто не предоставить XLS в обоих случаях, так как новые версии Excel открывают этот файл. Зачем вам обоим? – Equalsk