1

写真をデータベースにアップロードして挿入することはできますが、複数の写真をアップロードするときに問題が発生します。これは私のモデルクラスの製品です:

public int ID { get; set; }
public int ID_Category { get; set; }
public int ID_User { get; set; }
public string Name_Product { get; set; }
public Nullable<decimal> Price { get; set; }
public string Detail { get; set; }
public string Description { get; set; }
public Nullable<int> Reviews { get; set; }
public string imageUrl1 { get; set; }
public string imageUrl2 { get; set; }
public string imageUrl3 { get; set; }

public virtual Category Category { get; set; }
public virtual UserProfile UserProfile { get; set; }

そして、これは私のコントローラーです:

[HttpPost]
public ActionResult AddProdct(Product DataProduct)
{
    int UserId = WebSecurity.GetUserId(User.Identity.Name);

    // var r = new List<Product>();
    var Data =  db.Product.Add(DataProduct);
    Data.ID_User = UserId;
    Data.ID_Category = DataProduct.ID_Category;
    Data.Name_Product = DataProduct.Name_Product;

    foreach(string file in Request.Files)
    {
        HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
        if (hpf.ContentLength == 0)
            continue;
        string saveFileName = Path.GetFileName(hpf.FileName);
        string location = Path.Combine(Server.MapPath("~/Images/Product"+ @"\" + saveFileName.Replace('+', '_')));
        Request.Files[file].SaveAs(location);
        Data.imageUrl1 = saveFileName;
    }

    db.SaveChanges();
}

写真の URL を列 imageUrl1、imageUrl2、および imageUrl3 に保存したいと考えています。

4

1 に答える 1

1

このようなことを試してください

[HttpPost]
public ActionResult AddProdct(Product DataProduct)
{
    int UserId = WebSecurity.GetUserId(User.Identity.Name);

    // var r = new List<Product>();
    var Data =  db.Product.Add(DataProduct);
    Data.ID_User = UserId;
    Data.ID_Category = DataProduct.ID_Category;
    Data.Name_Product = DataProduct.Name_Product;

     // Count varible 
    int  count = 0 ; 


    foreach(string file in Request.Files)
    {


        HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
        if (hpf.ContentLength == 0)
            continue;
        string saveFileName = Path.GetFileName(hpf.FileName);
        string location = Path.Combine(Server.MapPath("~/Images/Product"+ @"\" + saveFileName.Replace('+', '_')));
        Request.Files[file].SaveAs(location);
       // Data.imageUrl1 = saveFileName;

       if ( i  >= 3) 
           i = 0 ;
      // Count + 1 each time
         i++ ; 

        if (i == 1 ) 
         { 
             Data.imageUrl1 = saveFileName ; 
         }
        else if (i == 2) 
        {
             Data.imageUrl2 = saveFileName ; 
        } 
       else if (i == 3 ) 
        {
            Data.imageUrl3 = saveFileName ; 
        } 


    }

    db.SaveChanges();
}
于 2013-07-06T03:49:47.010 に答える