C#将文件保存到服务器而不是本地文件夹
该项目是基于MVC 4 C#的Web应用程序。
我目前正在本地工作,并希望能够以调试模式将文件上传到我本地运行的应用程序,并将文件保存到Web服务器而不是我的本地文件夹。
目前我们正在使用:
if (!System.IO.File.Exists(Server.MapPath(PicturePath))) { file.SaveAs(Server.MapPath(PicturePath)); }
我们如何利用此代码直接保存到Web服务器。 这有可能吗?
现在文件被保存到我的本地路径,路径存储在数据库中,然后我们必须手动将文件上传到网络服务器。
SaveAs
函数采用文件名,并将文件保存到您提供的任何路径,只要满足以下条件:
- 您本地计算机可以访问文件路径
- 您的本地帐户具有写入文件路径的正确权限
我建议你有一个web.config设置,可以在运行代码时进行检查。 然后,您可以决定是使用Server.MapPath
还是使用绝对路径。
例如,在“debug”more(在本地运行)中,您可能具有以下设置:
并以“实时”模式:
然后您的代码可能如下所示:
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 ); }