将图像上载到Asp.net中的文件夹时找不到部分路径
我正在上传一个用户的个人资料图片到一个文件夹,并将其路径保存到RavenDB。但我的代码给了我一个错误,路径的一部分找不到。在这条线上将图像上载到Asp.net中的文件夹时找不到部分路径,asp.net,asp.net-mvc-4,ravendb,Asp.net,Asp.net Mvc 4,Ravendb,我正在上传一个用户的个人资料图片到一个文件夹,并将其路径保存到RavenDB。但我的代码给了我一个错误,路径的一部分找不到。在这条线上 file.SaveAs(path); 代码: [HttpPost] public ActionResult UploadPic(文件管理fmanage,HttpPostedFileBase文件) { 字符串email=User.Identity.Name; 如果(file!=null&&file.ContentLength>0) { var FileName=
file.SaveAs(path);
代码:
[HttpPost]
public ActionResult UploadPic(文件管理fmanage,HttpPostedFileBase文件)
{
字符串email=User.Identity.Name;
如果(file!=null&&file.ContentLength>0)
{
var FileName=string.Format(“{0}.{1}”,Guid.NewGuid(),file.ContentType);
var path=path.Combine(Server.MapPath(“~/App\u Dta/Uploads”),文件名);
file.SaveAs(路径);
使用(var session=DocumentStore.OpenSession(“RavenMemberShip”))
{
var query=来自Session.query()中的q,其中q.Email==电子邮件选择q;
if(query.Count()>0)
{
foreach(查询中更新的var)
{
fmanage.FileName=文件名;
fmanager.Path=路径;
session.SaveChanges();
}
}
}
}
else ModelState.addmodeleror(“,”删除错误并重试“);
返回视图();
}
您的路径中有一个键入错误
替换
var path = Path.Combine(Server.MapPath("~/App_Dta/Uploads"), FileName);
与
var path = Path.Combine(Server.MapPath("~/App_Data/Uploads"), FileName);
您还需要确保您具有写入此目录的相关权限
根据您的错误,文件路径看起来不正确
c:\users\wasfa\documents\visual studio
2012\Projects\MvcMembership\MvcMembership\App_Data\Uploads\daed3def-df2b-4406-aa9e-c1995190aa6d.图像\jpeg
isDAED3DDEF-df2b-4406-aa9e-c1995190aa6d.image\jpeg文件名
尝试:
[HttpPost]
public ActionResult UploadPic(文件管理fmanage,HttpPostedFileBase文件)
{
字符串email=User.Identity.Name;
如果(file!=null&&file.ContentLength>0)
{
var FileName=string.Format(“{0}.{1}”,Guid.NewGuid(),Path.GetFileName(file.FileName));
var path=path.Combine(Server.MapPath(“~/App\u Dta/Uploads”),文件名);
file.SaveAs(路径);
使用(var session=DocumentStore.OpenSession(“RavenMemberShip”))
{
var query=来自Session.query()中的q,其中q.Email==电子邮件选择q;
if(query.Count()>0)
{
foreach(查询中更新的var)
{
fmanage.FileName=文件名;
fmanager.Path=路径;
session.SaveChanges();
}
}
}
}
else ModelState.addmodeleror(“,”删除错误并重试“);
返回视图();
}
在文件.SaveAs(路径)
之前,请尝试检查目录是否存在,如果不存在,请创建一个
if(CreateFolderIfNeeded(path);
{
file.SaveAs(path);
}
一个专用函数,用于在需要时创建目录
private static bool CreateFolderIfNeeded(string path)
{
bool result = true;
if (!Directory.Exists(path))
{
try
{
Directory.CreateDirectory(path);
}
catch (Exception)
{ result = false; }
}
return result;
希望这有帮助。检查
var FileName=string.Format(“{0}.{1}”、Guid.NewGuid()、file.ContentType)代码>代码中的行
file.ContentType不会返回您正在上载的文件的扩展名。它应该像daed3def-df2b-4406-aa一样9e-c1995190aa6d.jpeg代替daed3def-df2b-4406-aa9e-c1995190aa6d.图像\jpeg
使用子字符串从上载的文件中查找扩展名
希望此帮助必须是Server.MapPath(“~/App\u Dta/Uploads”)中的App\u数据
我已将其更改为App_Data,但收到的错误消息与此相同。异常详细信息是异常详细信息:System.IO.DirectoryNotFoundException:找不到路径“c:\users\wasfa\documents\visual studio 2012\Projects\MVCMMembership\MVCMMembership\App_Data\Uploads\DAED3DDEF-df2b-4406-aa9e-c1995190aa6d.image\jpeg”的一部分。我已已删除此键入错误,但我正在获取相同的异常详细信息:System.IO.DirectoryNotFoundException:找不到路径“c:\users\wasfa\documents\visual studio 2012\Projects\MVCMMembership\MVCMMembership\App_Data\Uploads\DAED3DDEF-df2b-4406-aa9e-c1995190aa6d.image\jpeg”的一部分。@wasfa,你没有提到问题中的全部错误,这可能会有所帮助。文件路径看起来有误。@Wasfa,我已经更新了创建文件名的代码部分。现在应该可以了,谢谢!。。这是令人担忧的…:-)@Wasfa,你最好发布一个问题,因为答案会在评论中丢失
if(CreateFolderIfNeeded(path);
{
file.SaveAs(path);
}
private static bool CreateFolderIfNeeded(string path)
{
bool result = true;
if (!Directory.Exists(path))
{
try
{
Directory.CreateDirectory(path);
}
catch (Exception)
{ result = false; }
}
return result;