6

该项目是一个基于 MVC 4 C# 的 Web 应用程序。

我目前在本地工作,希望能够以调试模式将文件上传到本地运行的应用程序,并将文件保存到 Web 服务器而不是本地文件夹。

目前我们正在使用:

if (!System.IO.File.Exists(Server.MapPath(PicturePath)))
{
     file.SaveAs(Server.MapPath(PicturePath));
}

我们如何利用此代码直接保存到网络服务器。这甚至可能吗?

现在文件被保存到我的本地路径并且路径存储在数据库中,然后我们必须手动将文件上传到网络服务器。

4

1 回答 1

8

SaveAs函数采用文件名并将文件保存到您提供的任何路径,前提是满足以下条件:

  • 您的本地计算机可以访问文件路径
  • 您的本地帐户具有写入文件路径的正确权限

我建议你有一个 web.config 设置,可以在运行代码时检查。然后您可以决定是使用Server.MapPath还是使用绝对路径。

例如,在“调试”模式(本地运行)下,您可能有以下设置:

<appSettings>
    <add key="RunningLocal" value="true" />
    <add key="ServerFilePath" value="\\\\MyServer\\SomePath\\" />
</appSettings>

在“实时”模式下:

<appSettings>
    <add key="RunningLocal" value="false" />
    <add key="ServerFilePath" value="NOT USED" />
</appSettings>

那么你的代码可能看起来像这样:

bool runningLocal = GetFromConfig();
bool serverFilePath = GetFromConfig();
string filePath;

if(runningLocal)
    filePath = serverFilePath;
else
    filePath = Server.MapPath(PicturePath);

if (!System.IO.File.Exists(filePath ))
{
     file.SaveAs(filePath );
}
于 2013-07-24T15:51:37.593 回答