У меня проблема с приложением.
У меня есть некоторый раздел в приложении, откуда пользователь может загрузить данные в файл Excel. Код работает абсолютно нормально на локальном компьютере, значит, файл загружается корректно на локальном компьютере с каждым браузером. Но когда мы загружаем файл с тестового или живого сервера, он показывает всплывающее окно со следующей ошибкой
"C: \ Users \ РНТ ~ 1.AMI \ AppData \ Local \ Temp \ hXybMbIw.xlsx.part
не может быть сохранен, потому что источник
файл не может быть прочитан. Попробуйте снова
позже или свяжитесь с сервером
администратор. "
только в браузере Firefox.
Я использую следующий код для загрузки файла
function ExportToExcel(isJdl) {
var url = '/Product/ExportToExcel?isJdl=' + isJdl
+ "&projID=" + _projID
+ "&PlanPages=" + escape($("#PlanPages").val())
+ "&SpecSections=" + escape($("#SpecSections").val())
+ "&Addenda=" + escape($("#Addenda").val())
+ "&HighLite=" + $("#chkHighLite").attr("checked");
Download(url);
}
function Download(url) {
var win = window.open(url, "DownloadWin", "resizable=0,status=0,toolbar=0,width=600px,height=300px");
win.focus();
win.moveTo(100, 100);
}
Код контроллера следующий: -
public void ExportToExcel(bool isJdl, string projID, string planPages, string specSections, string addenda, string HighLite)
{
int pID = int.Parse(projID.Decrypt());
bool HightLiteVal = false;
if (!string.IsNullOrEmpty(HighLite))
HightLiteVal = Convert.ToBoolean(HighLite);
Highmark.BLL.Models.Project proj = Highmark.BLL.Services.ProjectService.GetByID(pID);
if (proj != null)
{
proj.PlanPages = planPages;
proj.SpecSections = specSections;
proj.Addenda = addenda;
proj.HighLite = HightLiteVal;
using (OfficeOpenXml.ExcelPackage pck = new OfficeOpenXml.ExcelPackage())
{
OfficeOpenXml.ExcelPackage pck1 = Highmark.BLL.Services.ProjectService.GetExcelFile(isJdl, pck, pID, proj, planPages, specSections, addenda);
string name = string.Format("{0}", proj.ProjectName);
if (pck1.Workbook.Worksheets.Count > 0)
{
//Write it back to the client
Response.ContentType = "Application/vnd.ms-Excel";
//Remove Invalid Character from File Name
name = name.RemoveInvalidCharFromFileName();
Response.AddHeader("content-disposition", "attachment; filename=\"" + name + "_HighEST.xlsx\"");
Response.BinaryWrite(pck1.GetAsByteArray());
}
}
}
else
Response.Write("Error: Invalid request, please try again");
}
Любая помощь приветствуется.
Спасибо