通过IIS运行时,文件上载控制不起作用
本文关键字:上载 控制 不起作用 文件 IIS 运行时 通过 | 更新日期: 2023-09-27 17:58:12
这是我上传到报表到excel的代码。。。当我运行时,它运行良好
通过本地,以防在IIS中运行时不起作用。。。。。
这是我的代码。。。。
protected void btnImport_Click(object sender, EventArgs e)
{
if (RevenueDumpFileUpload.HasFile)
{
string strFilePathOnServer = ConfigurationManager.AppSettings["RevenueDumpFileLocation"];
String sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(strFilePathOnServer) + RevenueDumpFileUpload.FileName + ";Extended Properties=Excel 8.0;";
// RevenueDumpFileUpload.PostedFile.SaveAs(Server.MapPath(strFilePathOnServer) + RevenueDumpFileUpload.FileName);
OleDbConnection Exlcon = new OleDbConnection(sConnectionString);
try
{
Exlcon.Open();
}
catch
{
return;
}
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", Exlcon);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
objAdapter1.Fill(objDataset1, "XLData");
methodtosave();
}
}
如何解决这个问题?
事实上,Fileupload可以工作,并且应该保存文件,但当您尝试读取上传的文件时,连接字符串中存在问题。它应该与用于保存文件的文件路径相同。
String sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" + strFilePathOnServer + RevenueDumpFileUpload.PostedFile.FileName + ";
Extended Properties=Excel 8.0;";
这是什么类型的应用程序。它是一个Web窗体应用程序吗?如果是:
您所说的本地和通过IIS是什么意思?你的意思是在服务器IIS上吗?如果你在服务器上运行代码,但它不起作用,那么你试图迫使服务器做一些不允许做的事情。
出于安全原因,您不应该从外部源访问服务器上的Excel。如果这是一个Web Forms应用程序,您可以使用java脚本和活动x控件访问客户端的excel,并编写客户端java脚本将文件保存到正确的目录。网上有很多例子,使用谷歌,可以做到这一点。我最近不得不为工作中的2个Web应用程序做这件事。
如果没有,那么这可能不是你的问题。