我如何在 asp.net 核心中使用 HttpPostedFileBase?

como puedo usalor HttpPostedFileBase en asp.net core?

HttpPostedFileBase

我想解决这个问题将图像存储到数据库中。我仍然没有 运行 这个项目,如果我有错误或更简单的方法

 public IActionResult Create(Productos prod [Bind("codigoFoto"] Productos productos, HttpPostedFileBase FotoProducto) 
        {
            //Console.WriteLine(JObject.FromObject(prod));
            using (var _context = new ApplicationDbContext())
            {
                var Categoria = _context.Categorias.Where(i => i.IsActive && i.Id == prod.Categoria.Id).FirstOrDefault(); 
                if (prod != null)
                {
                    if (FotoProducto != null && FotoProducto.ContentLength > 0)
                    {
                        byte[] imageData = null;

                        using (var binaryReader = new BinaryReader(FotoProducto.InputStream))
                        {
                            imageData = binaryReader.ReadBytes(FotoProducto.ContentLength);
                        }
                        //setear la imagen a la entidad que se creara
                        productos.Foto = imageData;
                    }

.Net Core 中,您必须使用 IFormFile 而不是 HttpPostedFileBase.

替换

Create(Productos prod [Bind("codigoFoto"] Productos productos, HttpPostedFileBase FotoProducto)

Create(Productos prod [Bind("codigoFoto"] Productos productos, IFormFile FotoProducto)

这篇link可能对你有帮助

非常感谢这对我有用

Create(Productos prod [Bind("codigoFoto"] Productos productos, IFormFile FotoProducto)

但我还必须更改此代码

using (var binaryReader = new BinaryReader(FotoProducto.InputStream))

var filePath = Path.GetTempFileName();
                    var file = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

                    file = Path.Combine(file, FotoProducto.FileName);


                    using (var stream = new FileStream(file, FileMode.Create))