Я занимаюсь разработкой веб-приложения ASP.NET, в котором таблица преобразуется в электронную таблицу Excel.Я хотел бы дать возможность пользователю сохранять в другом месте, кроме раздела загрузок.Я понимаю, что есть большая вероятность того, что это запрещено, но, возможно, существует некоторый класс / механизм, поддерживаемый фреймворком ASP.net.
Вот мой текущий код:
protected void saveDataButton_Click(Object sender, EventArgs e)
{
SaveFileDialog browser = new SaveFileDialog();
string fileName;
if (browser.ShowDialog() == DialogResult.OK)
{
fileName = browser.FileName;
}
else
return;
DataTable table = (DataTable)Session["tableData"];
HttpContext context = HttpContext.Current;
context.Response.Clear();
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");
foreach (DataColumn column in table.Columns)
{
context.Response.Write(column.ColumnName + ";");
}
context.Response.Write(Environment.NewLine);
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < row.ItemArray.Length; i++)
{
context.Response.Write(row[i].ToString().Replace(";", string.Empty) + ";");
}
context.Response.Write(Environment.NewLine);
}
context.Response.End();
}
Я знаю, что использование fileName неправильно в этом контексте, так как fileName фактически хранит путь к файлу + имя файла в моем коде.Любой способ указать путь к файлу?
Единственное другое решение, которое я могу придумать, - это если я создал какой-то файл на странице и сделал так, чтобы он щелкнул правой кнопкой мыши + сохранить как.Это плохая альтернатива?Есть ли другие?