我有一個過程,允許用戶下載電子表格,進行一些更改,然後上傳這些更改。將CSV導入到Web應用程序
上傳方法樣子 -
public DataTable ImportXLS(String SourceFilePath) {
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + SourceFilePath + ";" +
"Extended Properties=Excel 8.0;";
using (OleDbConnection cn = new OleDbConnection(ConnectionString)) {
cn.Open();
DataTable dbSchema = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dbSchema == null || dbSchema.Rows.Count < 1) {
throw new Exception("Error: Could not determine the name of the first worksheet.");
}
string WorkSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + WorkSheetName + "]", cn);
DataTable dt = new DataTable(WorkSheetName);
da.Fill(dt);
return dt;
}
}
當我在本地調用該方法,它的作品,因爲我可以看到我的本地驅動器。
當部署到Web服務器,並呼籲像 -
ExportImport _ei = new ExportImport();
DataTable dt = null;
dt = _ei.ImportXLS("C:\Users\mike\Desktop\mike.xls");
我得到一個錯誤,「C:\用戶\麥克風\桌面\ mike.xls」不是一個有效的路徑,顯然是因爲它在Web服務器上不存在。
有沒有人有任何嘗試通過網絡上傳文件的經驗,以及如何解決文件位置問題?
你需要傳遞'_ei.ImportXLS()'到的路徑上傳的文件被保存。 –
您也可以先將您的文件上傳到服務器,讓我們說一個'files'目錄,然後用朝向那個URL的URL打開它。如'_ei.ImportXLS(「/ files/mike.xls」);' –
使用此功能的用戶將無法訪問Web服務器。我如何將它上傳到網絡服務器? – duckmike