通过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();
    }
}

如何解决这个问题?

通过IIS运行时,文件上载控制不起作用

事实上,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应用程序做这件事。

如果没有,那么这可能不是你的问题。