mercredi 23 mars 2016

MVC 4 EF 6 - Upload image while changing its name during the process

        public ActionResult Create()
    {

        ViewBag.UrunID = new SelectList(db.Urunlers.Include(u => u.Boyut), "UrunID", "UrunName");
        ViewBag.Boyutlar = new SelectList(db.Boyuts, "BoyutID", "BoyutDeger");
        return View();
    }

    // POST: Admin/UrunResimlerTs/Create
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://ift.tt/1eddaz0.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "ResimID,UrunID,ResimName,ResimPath,BoyutDeger")] UrunResimlerT urunResimlerT, HttpPostedFileBase file)
    {
        if (ModelState.IsValid)
        {
            if (file != null)
            {
                var filename = Path.GetFileName(file.FileName);
                filename += urunResimlerT.UrunID;
                var bebe = db.UrunResimlerTs.Include(u => u.Urunler).Include(u => u.Urunler.Boyut).ToList();

                Directory.CreateDirectory(Server.MapPath("~/images/" + urunResimlerT.ResimID + "_" + urunResimlerT.UrunID));

                string PathToSave = "~/images/" + urunResimlerT.ResimID + "_" + urunResimlerT.UrunID;

                string imagePathLocation = PathToSave + "/" + filename;

                file.SaveAs(Server.MapPath(imagePathLocation));

                var bd = new Boyut();

                urunResimlerT.ResimName =
                    Convert.ToString(urunResimlerT.UrunID) + "_" +
                    Convert.ToString(DateTime.Now) + "_" +
                    urunResimlerT.Boyut.BoyutDeger;
                //bebe.Find(UrunID);

                urunResimlerT.ResimPath = imagePathLocation;

                db.UrunResimlerTs.Add(urunResimlerT);
                db.SaveChanges();
            }

            return RedirectToAction("Index");
        }

        ViewBag.UrunID = new SelectList(db.Urunlers, "UrunID", "UrunName", urunResimlerT.UrunID);
        return View(urunResimlerT);
    }

Here is my MVC 4 - EF 6 - Database First Create Code ▲

Here is my Classes ▼

        public partial class UrunResimlerT
{
    public int ResimID { get; set; }
    public int UrunID { get; set; }
    public string ResimName { get; set; }
    public string ResimPath { get; set; }

    public virtual Urunler Urunler { get; set; }
}

The other one ▼

public partial class Urunler
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Urunler()
    {
        this.UrunResimlerTs = new HashSet<UrunResimlerT>();
    }

    public int UrunID { get; set; }
    public string UrunName { get; set; }
    public string UrunNumber { get; set; }
    public Nullable<int> MarkaID { get; set; }
    public Nullable<int> GenislikID { get; set; }
    public Nullable<int> BoyutID { get; set; }
    public Nullable<int> KalinlikID { get; set; }
    public Nullable<int> YuzeyID { get; set; }
    public Nullable<int> AgacTurID { get; set; }
    public Nullable<int> DerzID { get; set; }
    public Nullable<int> RenkID { get; set; }
    public Nullable<int> PaketBirim { get; set; }
    public Nullable<int> PaketAgirligi { get; set; }
    public string TeknikOzellik { get; set; }
    public string UrunYapisi { get; set; }
    public string ProfilYapi { get; set; }
    public Nullable<bool> IsRecommended { get; set; }
    public Nullable<bool> IsNew { get; set; }
    public System.DateTime ModifiedDate { get; set; }
    public string Aciklama { get; set; }
    public bool IsValid { get; set; }

    public virtual Boyut Boyut { get; set; }
    public virtual Genislik Genislik { get; set; }
    public virtual Kalinlik Kalinlik { get; set; }
    public virtual Marka Marka { get; set; }
    public virtual Renk Renk { get; set; }
    public virtual Yuzey Yuzey { get; set; }
    public virtual Derz Derz { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<UrunResimlerT> UrunResimlerTs { get; set; }
}

I want to change the image name according to its Length(BoyutDeger) property while uploading and save it to a folder.

So i can the files from another.

Thanks in advance




Aucun commentaire:

Enregistrer un commentaire