دسته بندی
    بسته

    افزودن عکس محصول با پلاگین

    5 سال پیش
    #1872 نقل قول
    من دارم سعی میکنم با استفاده از پلاگین، محصول جدید ایجاد کنم. اگرچه موفق نشدم عکس رو به درستی به محصول اضافه کنم

                var productService = new NopEngine().Resolve<IProductService>();

                var prod = new Product
                {
                    Name = "Test product",
                    UpdatedOnUtc = DateTime.UtcNow,
                    CreatedOnUtc = DateTime.UtcNow,
                };

                var prodPicture = new ProductPicture
                {
                    Picture = new Picture
                    {
                        IsNew = true,
                        MimeType = "image/jpeg",
                        SeoFilename = "test",
                        PictureBinary = ImageToBinary("test.jpg")
                    }
                };

                prod.ProductPictures.Add(prodPicture);

                productService.InsertProduct(prod);


    و

    public static byte[] ImageToBinary(string imagePath)
            {
                var fileStream = new FileStream(HttpContext.Current.Server.MapPath("~/" + imagePath), FileMode.Open, FileAccess.Read);
                var buffer = new byte[fileStream.Length];
                fileStream.Read(buffer, 0, (int)fileStream.Length);
                fileStream.Close();
                return buffer;
            }


    این کد، محصول جدید ایجاد میکنه و عکس رو بهش اضافه میکنه. اگرچه این پلاگین، عکس رو نشون نمیده. بلکه "no image" رو از "content/images/default-image.gif" فراخوانی میکنه و نشون میده.

    از دوستان کسی میدونه کجا رو اشتباه رفتم؟
    1
    5 سال پیش
    #1874 نقل قول
    سلام دوست محترم. شما باید عکس رو هم اضافه کنید. میتونید بررسی کنید ImportManager چطور این کار رو انجام میده

    \Libraries\Nop.Services\ExportImport\ImportManager.cs

    مثلا

            prod.ProductPictures.Add(new ProductPicture()
                {
                    Picture = _pictureService.InsertPicture(data, "image/jpeg", _pictureService.GetPictureSeName(name), true),
                    DisplayOrder = 1,
                });
    1
    دسته بندی ها