操作在数据库中成功创建了图像路径,但图像没有保存在FileUploaded文件夹中
这是我的模特
namespace Blog.Models
{
public class Post
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Content { get; set; }
[Required]
[Display (Name = "upload photo")]
public string Path { get; set; }
[Required]
public DateTime PostDate { get; set; }
public IEnumerable<Comment> Comments { get; set; }
}
}
这里我的Controller要插入数据库
数据库中的图像路径成功但图像没有保存在FileUploaded文件夹中
[HttpPost]
public ActionResult Submit(Post post , HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
post.PostDate = DateTime.Now;
if (file != null)
{
post.Path = file.FileName;
string FileName = Path.GetFileName(file.FileName);
string path = Path.Combine(Server.MapPath("~/FileUploaded/"
+ FileName));
file.SaveAs(path);
}
_db.Posts.Add(post);
_db.SaveChanges();
return RedirectToAction("Index");
}
这里是我的View html页面,它位于post controller中的提交
@model Blog.Models.Post
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>New Post</h2>
@using (Html.BeginForm("Submit", "Posts",FormMethod.Post,new
{enctype = "multipart/form-data"}))
{
<div class="form-group">
@Html.LabelFor(m => m.Title)
@Html.TextBoxFor(m => m.Title, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Title)
</div>
<div class="form-group">
@Html.LabelFor(m => m.Content)
@Html.TextAreaFor(m => m.Content, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Content)
</div>
<div class="form-group">
@Html.LabelFor(m => m.Path)
@Html.TextBoxFor(m => m.Path, new { @class = "form-control", type =
"file" })
@Html.ValidationMessageFor(m => m.Path)
</div>
@Html.AntiForgeryToken()
<button type="submit" class="btn btn-primary">Post Now</button>
}
答案 0 :(得分:0)
我的假设看起来像是一个权限问题。
更改 FileUploaded 文件夹上的权限,以便ASP.NET可以写入该权限。
首先尝试将图像保存到〜/ App_Data / 文件夹中,如果保存成功,则表示您有权限问题。