C# 文件路径可以是';无法从共享库中找到
我有一个应用程序,用户可以查看附在样本上的图像,然后他们需要能够通过电子邮件将该样本的详细信息(包括图像附件)发送给利益相关者 在web应用程序的my web.config中,我有:C# 文件路径可以是';无法从共享库中找到,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个应用程序,用户可以查看附在样本上的图像,然后他们需要能够通过电子邮件将该样本的详细信息(包括图像附件)发送给利益相关者 在web应用程序的my web.config中,我有: <add key="ImagesPath" value="~/Images" /> 调试时 找不到文件“C:\Program Files(x86)\IIS Express\~\Images\3000\1\1\3.png” 发布后 找不到路径“C:\Windows\SysWOW64\inetsrv\~\
<add key="ImagesPath" value="~/Images" />
调试时
找不到文件“C:\Program Files(x86)\IIS Express\~\Images\3000\1\1\3.png”
发布后
找不到路径“C:\Windows\SysWOW64\inetsrv\~\Images\9251\1\1.JPG”的一部分
我尝试的
一,
在创建附件之前,我尝试调用此函数
var appDomain = System.AppDomain.CurrentDomain;
var basePath = appDomain.RelativeSearchPath ?? appDomain.BaseDirectory;
var p = Path.Combine(basePath, item);
message.Attachments.Add(new Attachment(p));
但应用程序仍然找不到这些文件
System.Web.HttpContext.Current.Server.MapPath(item);
message.Attachments.Add(new Attachment(item));
有人能帮我解决这个问题吗。从您发布的代码来看,您似乎调用了
System.Web.HttpContext.Current.Server.MapPath(item)方法,但不使用该方法的结果创建附件
Server.MapPath
返回文件的物理位置。使用调用该方法的结果添加附件
这应该行得通
var item = "3000/1/1/3.png";
var fileLocation = Path.Combine("images/",item);
var fullPath = System.Web.HttpContext.Current.Server.MapPath(fileLocation);
message.Attachments.Add(new Attachment(fullPath));
有时,我倾向于在实际尝试访问文件之前进行文件存在性检查
if (File.Exists(fullPath ))
{
message.Attachments.Add(new Attachment(fullPath));
}
如果您是从MVC控制器使用它,您可以使用Url.Content
和Server.MapPath
var p = Server.MapPath(Url.Content("~/images/3000/1/1/3.png"));
从您发布的代码中,您似乎调用了System.Web.HttpContext.Current.Server.MapPath(item)方法,但不使用该方法的结果创建附件
Server.MapPath
返回文件的物理位置。使用调用该方法的结果添加附件
这应该行得通
var item = "3000/1/1/3.png";
var fileLocation = Path.Combine("images/",item);
var fullPath = System.Web.HttpContext.Current.Server.MapPath(fileLocation);
message.Attachments.Add(new Attachment(fullPath));
有时,我倾向于在实际尝试访问文件之前进行文件存在性检查
if (File.Exists(fullPath ))
{
message.Attachments.Add(new Attachment(fullPath));
}
如果您是从MVC控制器使用它,您可以使用Url.Content
和Server.MapPath
var p = Server.MapPath(Url.Content("~/images/3000/1/1/3.png"));
您是否尝试了message.Attachments.Add(新附件(System.Web.HttpContext.Current.Server.MapPath(项))代码>?项目中的值是多少?@Shyju我刚刚测试了你的建议,似乎效果不错谢谢<代码>项
只是文件的路径。如果您想添加答案,我将接受您是否尝试了message.Attachments.add(新附件(System.Web.HttpContext.Current.Server.MapPath(item))代码>?项目中的值是多少?@Shyju我刚刚测试了你的建议,似乎效果不错谢谢<代码>项
只是文件的路径。如果你想补充一个答案,我会接受的