C# MVC文件上载未经授权的访问异常
我有以下代码:C# MVC文件上载未经授权的访问异常,c#,asp.net-mvc-3,visual-studio-2010,C#,Asp.net Mvc 3,Visual Studio 2010,我有以下代码: [HttpPost] public ActionResult Edit(Photograph photo, HttpPostedFileBase image) { if (ModelState.IsValid) { if (image != null) { byte[] imageData = new byte[image.ContentLength]
[HttpPost]
public ActionResult Edit(Photograph photo, HttpPostedFileBase image)
{
if (ModelState.IsValid)
{
if (image != null)
{
byte[] imageData = new byte[image.ContentLength];
image.InputStream.Read(imageData, 0, image.ContentLength);
System.IO.File.WriteAllBytes(HttpContext.Server.MapPath("~/Content/Images"), imageData);
}
repository.SavePhotograph(photo);
TempData["message"] = string.Format("{0} has been saved", photo.Name);
return RedirectToAction("Index");
}
else
{
return View(photo);
}
}
这意味着拍摄从表单上传的照片并将其保存在服务器(本地服务器)中。我已经给了文件夹“VisualStudio2010”,其中所有项目都有网络服务用户权限和IIS_IUSRS组权限。我还以管理员身份运行VisualStudio
由于某种原因,它仍然不允许我将文件保存到该位置。该位置位于{project\u Name\Content\Images}下的项目文件夹中。我怎样才能把文件保存在那里
谢谢
由于某种原因,它仍然不允许我将文件保存到该位置
你有什么错误吗?如果是,请在此发布完整错误
案例一:如果您使用Visual Studio运行MVC应用程序,请确保使用“以管理员身份运行”选项运行Visual Studio
案例二:如果您在IIS上运行MVC应用程序。转到保存图像的文件夹。即授予“IIS_IUSRS”用户完全控制“修改”权限
由于某种原因,它仍然不允许我将文件保存到该位置
你有什么错误吗?如果是,请在此发布完整错误
案例一:如果您使用Visual Studio运行MVC应用程序,请确保使用“以管理员身份运行”选项运行Visual Studio
案例二:如果您在IIS上运行MVC应用程序。转到保存图像的文件夹。即授予“IIS\u IUSRS”用户完全控制“修改”权限。RE:带有“System.IO.File.writealBytes”的行。。。您正在尝试保存到目录吗?它在哪里为上传的文件选择了一个文件名?RE:带有“System.IO.file.writealBytes”的行。。。您正在尝试保存到目录吗?它在哪里为上传的文件选择了一个文件名?它给我这个错误的原因是因为该方法:
System.IO.File.WriteAllBytes()
获取文件和数据的路径
我正在传递一个文件夹
System.IO.File.WriteAllBytes(HttpContext.Server.MapPath("~/Content/Images"), imageData);
我应该传递一个文件:
System.IO.File.WriteAllBytes(String.Format("{0}{1}", HttpContext.Server.MapPath("~/Content/Images"), image.FileName), imageData);
现在我的存储库出现了一个错误,所以我正在研究:)我非常喜欢编码……) 它给我这个错误的原因是因为方法:
System.IO.File.WriteAllBytes()
获取文件和数据的路径
我正在传递一个文件夹
System.IO.File.WriteAllBytes(HttpContext.Server.MapPath("~/Content/Images"), imageData);
我应该传递一个文件:
System.IO.File.WriteAllBytes(String.Format("{0}{1}", HttpContext.Server.MapPath("~/Content/Images"), image.FileName), imageData);
现在我的存储库出现了一个错误,所以我正在研究:)我非常喜欢编码……) 您是在调试模式下通过Visual Studio运行此操作还是部署到IIS?您是在调试模式下通过Visual Studio运行此操作还是部署到IIS?我建议在案例II中,IIS_IUSR被授予“修改”权限,而不是完全控制权。没有理由让IIS拥有设置权限/获取文件所有权/等等的能力。只要2美分…@Tommy ya我现在意识到,我已经做出了改变。谢谢,我已经让VisualStudio以管理员的身份运行,正如您在这里描述的那样。如果IIS_IUSRS具有完全控制权,它仍应工作。错误为UnauthorizedAccessException。您是在调试模式下通过Visual Studio运行此操作还是部署到IIS?我建议在案例II中向IIS_IUSR授予“修改”权限,而不是完全控制。没有理由让IIS拥有设置权限/获取文件所有权/等等的能力。只要2美分…@Tommy ya我现在意识到,我已经做出了改变。谢谢,我已经让VisualStudio以管理员的身份运行,正如您在这里描述的那样。如果IIS_IUSRS具有完全控制权,它仍应工作。错误为UnauthorizedAccessException。您是在调试模式下通过Visual Studio运行此操作,还是部署到IIS?