2011-06-01 65 views
0

運行時,這是我對上傳擴展端口擅長編碼不工作文件上傳控制...當我在的情況下運行通過IIS

通過本地運行的同時通過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(); 
    } 
} 

如何解決這個問題?

+0

什麼不起作用?你收到什麼錯誤?它是數據庫連接嗎?很少有信息可以提供線索。 – DanielB 2011-06-01 08:49:49

回答

0

實際上Fileupload會工作並應該保存該文件,但是當您嘗試讀取上傳的文件時,連接字符串中存在問題。它應該與您用來保存文件的文件路徑相同。

String sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; 
Data Source=" + strFilePathOnServer + RevenueDumpFileUpload.PostedFile.FileName + "; 
Extended Properties=Excel 8.0;"; 
+0

當我運行iis時它不工作......它在本地工作 – 2011-06-01 09:26:59

+0

告訴我一件事,什麼值包含這個變量「strFilePathOnServer」? – 2011-06-01 09:29:09

+0

讓我們保存你的文件〜/ Temp/abc.xls,當你嘗試讀取文件時,你的連接字符串應該是這樣的... Data Source =「〜/ Temp/abc.xls」文件名,因爲您已經通過路徑來保存文件。 – 2011-06-01 09:30:11

0

這是什麼類型的應用程序。它是一個Web窗體應用程序?如果是這樣的話:

你是什麼意思由本地和通過IIS?你的意思是在服務器IIS上? 如果你在服務器上運行代碼,但它不工作,那麼你試圖強制服務器做一些不允許的事情。

出於安全原因,您不應該從外部來源訪問服務器上的Excel。如果這是一個Web窗體應用程序,您可以執行的操作是使用java腳本和活動的x控件訪問客戶端的excel並編寫客戶端Java腳本以將文件保存到正確的目錄。網上有很多例子,使用Google來做到這一點。我最近不得不在工作中爲2個Web應用程序執行此操作。

如果不是,那麼這可能不是你的問題。