У меня есть веб-приложение, и я хочу загрузить файл excel и прочитать его в приложении. Все хорошо, когда я запускаю приложение с VS или в localhost (с окнами 7 и IIS 7.5). Но когда я развертываю приложение на сервере с серверами Windows 2008 и IIS 7.5, я вижу две ошибки. Я подключился к серверу с помощью средства просмотра команд, и я развернул приложение на сервере.Формат данного пути не поддерживается на сервере Windows
Когда я хочу, чтобы загрузить файл с рабочего стола сервера я вижу это (я имею доступ администратора):
Access to the path 'C:\Users\Administrator\Desktop\931001.xlsx' is denied.
И когда я хочу, чтобы загрузить с другого pathese я вижу эту ошибку:
The given path's format is not supported.
это мои попытки загрузить этот файл:
Попробуйте 1:
public ActionResult Index(HttpPostedFileBase file)
{
file.SaveAs(Server.MapPath("~/Files/" + file.FileName));
var fileName = "/Files/" + file.FileName;
var connectionString = "";
if (file.FileName.Split('.').LastOrDefault().ToLower() == "xlsx")
{
connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", Server.MapPath(fileName));
}
else
{
connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
}
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "contracts");
var contracts = ds.Tables["contracts"].AsEnumerable();
}
Попробуйте 2:
public ActionResult Index(HttpPostedFileBase file)
{
var path = Server.MapPath("~/Files/");
file.SaveAs(Path.Combine(path, file.FileName));
var fileName = "~/Files/" + file.FileName;
var connectionString = "";
if (file.FileName.Split('.').LastOrDefault().ToLower() == "xlsx")
{
connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", Server.MapPath(fileName));
}
else
{
connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", Server.MapPath(fileName));
}
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "customer");
var customer = ds.Tables["customer"].AsEnumerable();
}
Попробуйте 3:
public ActionResult Index(HttpPostedFileBase file)
{
var path = Server.MapPath(@"\Files\");
file.SaveAs(Path.Combine(path, file.FileName));
var fileName = @"\Files\" + file.FileName;
var connectionString = "";
if (file.FileName.Split('.').LastOrDefault().ToLower() == "xlsx")
{
connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", Server.MapPath(fileName));
}
else
{
connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", Server.MapPath(fileName));
}
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "customer");
var customer = ds.Tables["customer"].AsEnumerable();
}
Что может быть проблема?