我使用WebClient.DownloadFile将图像下载到本地存储库,如下所示:
WebClient myWC = new WebClient();
myWC.Credentials = new System.Net.NetworkCredential(username, password);
string photoPath = @"\images\Employees\" + employee + ".jpg";
myWC.DownloadFile(userResult[12].Values[0].Value.ToString(), photoPath);
我的预期结果如下:我的网络应用程序部署在此处:
C:\的Inetpub \ wwwroot的\ MyWebApp
我希望这可以将照片保存到
C:\的Inetpub \ wwwroot的\ MyWebApp \图像\雇员...
相反,我的所有照片都保存在这里:
C:\ IMAGES \雇员
我想我并不完全理解DownloadFile
方法,因为我觉得路径应该与部署应用程序的目录相关。如何更改路径以使其相对于目录该应用程序?
注意:我不想使用物理路径,因为我有一个Dev和QA网站,如果事情被移动,我不希望路径中断。
答案 0 :(得分:5)
在ASP.NET应用程序中,您可以使用Server.MapPath
方法映射到网站中相对于网站根目录的物理文件夹(由~
表示):
string photoPath = Server.MapPath("~/images/Employees/" + employee + ".jpg");
答案 1 :(得分:1)
photoPath
中的前导反斜杠使路径成为从根目录开始的绝对路径(示例中为C:\
)。确保它成为相对路径只需删除前导反斜杠:
string photoPath = @"images\Employees\" + employee + ".jpg";
备注: DownloadFile(...)
不会为您创建目录。确保它在那里:
Directory.CreateDirectory("images\Employees");
答案 2 :(得分:0)
string photoPath = @"images\Employees\" + employee + ".jpg";
在powershell中不起作用,并出现以下错误:
At line:1 char:22
+ string photoPath = @"images\Employees\" + employee + ".jpg";
+ ~
No characters are allowed after a here-string header but before the end of the line.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedCharactersAfterHereStringHeader