我的网络表单中有一个文件上传控件(FileUpload1),用于加载excel文件。我使用名为btn_open的按钮在单击时在gridview中显示它。 我还使用FileUpload1.SaveAs()方法将文件保存在服务器文件夹中。
现在,我还有另一个名为btn_edit的按钮,单击该按钮需要使用相同的按钮 我刚刚加载以执行另一组操作的文件。
如何将此文件/文件路径从btn_open_Click传递到btn_edit_Click?我不想在代码上指定确切的位置。我将多次打开新的excel文件,因此我不想为每个新文件指定服务器的文件路径,这需要以编程方式进行。另外,如果可能的话,我想避免使用Interop。
以下代码片段可能使我想要做的事情更加清楚。
protected void btn_open_Click(object sender, EventArgs e)
{
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileExtension.ToLower() == ".xlsx" || fileExtension.ToLower() == ".xls")
{
string path = Path.GetFileName(FileUpload1.FileName); //capture the file name of the file I have uploaded
path = path.Replace(" ", ""); // if there is any spacing between the file name it will remove it
FileUpload1.SaveAs(Server.MapPath("~/ExcelFile/") + path); //saves to Server folder called ExcelFile
String ExcelPath = Server.MapPath("~/ExcelFile/") + path; // Returns the physical file path that corresponds to the specified virtual path.
.
.
*code to display it in gridview*
.
.
}
else
{
Console.Writeline("File type not permissible");
}
}
protected void btn_edit_Click(object sender, EventArgs e)
{
//HOW DO I PASS THE ABOVE FILE HERE PROGRAMATICALLY WITHOUT SPECIFYING IT'S EXACT LOCATION ON THE SERVER??
}
答案 0 :(得分:0)
使用Session变量可以帮助我解决问题。希望它将对可能遇到类似问题的其他人有所帮助。
在第一个按钮(以我为例btn_open_Click)上,添加:
Session["myXlsPath"] = ExcelFilePath;
注意:“ myXlsPath”只是我为Session变量创建的名称。 ExcelFilePath是我要传递给另一个按钮的excel文件的路径。
在您要将文件路径传递到的按钮上(以我为例btn_edit_Click),添加:
string ExcelFilePath = (string)Session["myXlsPath"];