繁体   English   中英

如何通过将字符串转换为System.Web.HttpPostedFileBase将图像保存在db中

How to save Image in db by converting string to System.Web.HttpPostedFileBase

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我必须向数据库中添加图像我的数据库如下

TableName = Product
- PId[int] 
- PImage[nvarchar(max)]

我正在使用DB FIRST APPROACH在ASP.NET MVC中创建应用程序,因此我的模型类如下(自动生成)

using System;
using System.Collections.Generic;

public partial class Product
{
    public int PId { get; set; }
    public string PImage { get; set; }
}

我的用于添加新图像的控制器如下。 我这样做是因为我的观点在React中

public ActionResult Create()
{
    return View();
}

[HttpPost]
public ActionResult Create(string myData)
{
    var details = Newtonsoft.Json.Linq.JObject.Parse(myData);

    int PId = Convert.ToInt32((string)details["PId"]);
    string PImage = [(string)details["PImage"]];   // An error is coming Cannot implicitly convert type 'System.Web.HttpPostedFileBase' to 'string'

    Product p = new Product() { PId = PId, PImage = PImage };
    db.Products.Add(p);
    db.SaveChanges();

    return View();
}

我的观点很好,它同时返回了PId和PImage PId正在保存在db中。问题是我不知道如何在db中保存图像。

1 个回复

添加课程:

 public HttpPostedFileBase Image { get; set; }

然后控制器:

 var imageFile = ConvertFileInByteArray(model.Image.InputStream, model.Image.ContentLength);

   private byte[] ConvertFileInByteArray(Stream inputStream, int contentLength)
    {
        try
        {
            byte[] file = null;
            using (var binaryReader = new BinaryReader(inputStream))
            {
                file = binaryReader.ReadBytes(contentLength);
            }
            return file;
        }
        catch (Exception e)
        {
            _logger.Error(e);
            Console.Write(e.ToString());
            throw;
        }
    }

    string imageStr = ComputeHash(imageFile);

    private string ComputeHash(byte[] file)
    {
        MD5 md5 = MD5.Create();

        byte[] hashAraay = md5.ComputeHash(file);

        var builder = new StringBuilder();

        foreach (byte b in hashAraay)
        {
            builder.AppendFormat("{0:x2}", b);
        }

        return builder.ToString();
    }
4 将字符串转换为HttpPostedFileBase

我正在尝试使用MVC上传附件功能。 实际上执行上传/保存附件的方法是期望HttpPostedFileBase类型。 我的问题是“fileName”作为字符串从UI传递。 如何将字符串(文件路径名称)转换为我的上载方法可以使用的内容。 提前致谢。 ...

6 将画笔转换为字符串以保存在EF中

我正在创建一个应用程序,该应用程序包含一个日历事件,以供用户有效使用。 作为功​​能的一部分,我希望用户能够为他们添加的事件保存颜色。 即 将活动背景设置为红色。 到目前为止,我正在使用colourpicker中的一个colourpicker色器,将其绑定到brush属性,就像这样; ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM