Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将图像上载到Asp.net中的文件夹时找不到部分路径_Asp.net_Asp.net Mvc 4_Ravendb - Fatal编程技术网

将图像上载到Asp.net中的文件夹时找不到部分路径

将图像上载到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=

我正在上传一个用户的个人资料图片到一个文件夹,并将其路径保存到RavenDB。但我的代码给了我一个错误,路径的一部分找不到。在这条线上

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-aa‌​9e-c1995190aa6d.图像\jpeg

isDAED3DDEF-df2b-4406-aa‌​9e-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-aa‌​9e-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;