在索引页中创建后加载资源图片失败

您好,我正在尝试将图像从本地文件夹添加到我的数据库中,并且工作成功,但已使用路径保存,并且not displaying在索引页面上没有图像但created value path在数据库中
我有此错误:

GET http://localhost:57079/ '~/Content/img/Asp.net.svg.png'

这是创建方法:

public ActionResult Create( Article article,HttpPostedFileBase postedFile)
    {

        try
        {
            db = new IdentityDBEntities2();

            if (ModelState.IsValid)
            {
                if (postedFile != null)
                {

                    article.image = Convert.ToString(postedFile.ContentLength);
                    postedFile.InputStream.Read(System.Text.Encoding.Unicode.GetBytes(article.image), 0, postedFile.ContentLength);
                    string fileName = System.IO.Path.GetFileName(postedFile.FileName);
                    string FilePath = "~/Content/img/" + fileName;
                    postedFile.SaveAs(Server.MapPath(FilePath));
                }

                article.UserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
                article.Idc = Convert.ToInt32(Request["cab"]);
                db.Articles.Add(article);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(article);
        }
        catch(Exception e) { Response.Write(e.Message); }
        return View();
    }

谢谢。

列奥尼达·费特

图像以字节数组的形式保存在数据库中。所以你的电话

article.image = Convert.ToString(postedFile.ContentLength);

如果您想保存实际图像,则没有任何意义。你需要做这样的事情:

var ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); //Specify format here; (image is of type System.Drawing.Image)
article.image = ms.ToArray();

您的图像属性需要是 typebyte[]并且基础数据库列需要是VARBINARY.

编辑:您收到错误,因为image需要符合System.Drawing.Image评论中所述的类型如果您不能使用它(或不想使用它),您需要从 'HttpPostedFileBase' 中提取字节数组,如下所示:

var ms = new MemoryStream();
postedFile.InputStream.CopyTo(ms); 
article.image = ms.ToArray(); 

当你完成所有这些后,你可以像这样在你的视图上显示图像:

  1. 创建一个新动作,返回每篇文章的图像

    public ActionResult GetImage(int id) { var article = db.Articles.First(i => i.Id == id); return File(article.image, "image/png"); //Adjust content type based on image type (jpeg, gif, png, etc.) }

  2. 替换 View 上的代码,以便从该操作中获取图像。

    改变

    `@Html.EditorFor(model => model.image, new {htmlAttributes = new { @class = "form-control" ,@type="file" } }`
    

    `<img src="@Url.Action("Index", "Images", new { id = Model.Id })" />`
    

请注意,这不会使图像可编辑。如果您需要此功能,您最好提出一个新问题,因为此答案已经超出了您原来的问题的范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

加载资源失败,空白页

来自分类Dev

图片加载失败后,如何使浏览器重试?

来自分类Dev

图片加载失败后,如何使浏览器重试?

来自分类Dev

无法加载索引页

来自分类Dev

图片加载失败

来自分类Dev

资源失败加载类

来自分类Dev

加载资源失败

来自分类Dev

在Elasticsearch中创建索引并加载数据后,是否可以定义映射?

来自分类Dev

自动创建索引页

来自分类Dev

自动创建索引页

来自分类Dev

如何在Android中创建图片文件夹资源

来自分类Dev

django 加载静态图片失败

来自分类Dev

图片随机损坏(但刷新后加载)并显示“资源被解释为图片,但以MIME类型text / html传输”

来自分类Dev

在MongoDB中创建后偶尔读取失败

来自分类Dev

在Titan中创建后使索引唯一

来自分类Dev

为什么在资源启动后测试文件在Upstart中失败?

来自分类Dev

不允许加载本地资源:在 asp.net webform 中无法加载图片

来自分类Dev

创建索引页Excel宏

来自分类Dev

加载图片后运行JS

来自分类Dev

如何将PGSeaerch结果链接到嵌套资源中的索引页?

来自分类Dev

下载后加载资源(iOS)

来自分类Dev

为什么类库中的图片资源没有加载?

来自分类Dev

如何从资源中打开图片?

来自分类Dev

在iOS中重启后尝试从本地路径加载图像失败

来自分类Dev

如何重新加载我的索引页

来自分类Dev

在Ruby中添加图片和资源后我无法保存图书

来自分类Dev

创建Android资源图片大小

来自分类Dev

Ajax不在Internet Explorer中执行PHP Form,而是重新加载整个索引页

来自分类Dev

Webpack 加载资源失败。捆绑.js 404