首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >系统无法读取我的图像上载文件(?)

系统无法读取我的图像上载文件(?)
EN

Stack Overflow用户
提问于 2018-02-10 01:20:11
回答 1查看 35关注 0票数 1

做电子商务网站,并击中与图片上传的问题。基本上我所有的产品信息都传递到数据库,除了图像文件。看起来是无法读取的。下面是我的方法:

代码语言:javascript
运行
复制
    [HttpPost]
    [Route("/create_product")]
    public async Task<IActionResult> productAdd(ProductCheck check)
    {
        int? id = HttpContext.Session.GetInt32("userId");
        if(id == null)
        {
            return RedirectToAction("LoginPage", "User");                           
        }
        else
        {
            if(ModelState.IsValid)
            {
                User exists = _context.Users.Where(u=>u.UserId == id).SingleOrDefault();
                Product newProduct = new Product
                {
                    Title = check.Title,
                    Description = check.Description,
                    Price = check.Price,  
                    UserId = (int)id,
                    CreatedAt = DateTime.Now,
                };
                var uploadDestination = Path.Combine(_hostingEnvironment.WebRootPath, "uploaded_images");

                if (check.Image != null)
                {
                    var filepath = Path.Combine(uploadDestination, check.Image.FileName);
                    using (var fileStream = new FileStream(filepath, FileMode.Create))
                    {
                        await check.Image.CopyToAsync(fileStream);
                        newProduct.Picture = "/uploaded_images/" + check.Image.FileName;
                    }
                }
                _context.Add(newProduct);
                _context.SaveChanges();
            }
            else
            {
                TempData["error"] = "Not added. Error";
            }
            return RedirectToAction("Homepage");

我之前遇到的错误是:Image

这是我的模型:

代码语言:javascript
运行
复制
using System;

使用System.Collections.Generic;

命名空间产品{公共类sellwalker.Models : BaseEntity {

代码语言:javascript
运行
复制
    public int ProductId{get;set;}
    public string Title{get;set;}
    public string Description{get;set;}
    public decimal Price{get;set;}
    public string Picture { get; set; }
    public DateTime CreatedAt{get;set;}
    public List<Order> Orders {get; set;}
    public Product()
    {
        Orders = new List<Order>();
    }
    public int UserId{get;set;}
    public User Seller{get;set;} 
}

和ViewModel验证表:

代码语言:javascript
运行
复制
public class ProductCheck : BaseEntity
{
    [Required]
    [MinLength(2, ErrorMessage="Name of the product should be greater than 2 characters")]
    public string Title{get;set;}

    [Required]
    [MinLength(10, ErrorMessage="Description of the product should be greater than 10 characters")]
    public string Description{get;set;}

    [Required]
    public decimal Price{get;set;}

    public IFormFile Image { get; set; }
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-10 01:47:38

我猜到了!确保表单中有enctype="multipart/ FORM -data“!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48711011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档