以编程方式创建产品时,不会上载Prestashop产品图像

时间:2015-09-24 09:57:43

标签: php html prestashop-1.6

使用模块中的以下代码创建产品并将上传的图像分配给它。在localhost上一切正常,但是当我将模块移动到服务器时,我遇到了问题。服务器上的模块成功创建产品。但是当我打开后端创建的产品图像部分时,我会得到带有问号的跟随图像,(下面的代码截图)。当我使用ftp到img目录(/img/p/3/7/37.jpg)时,没有img目录或img本身。所以看起来创建img目录时出现问题。有没有人有这样的问题,可以转发我在哪里搜索问题?

 <?php
    //Create product
    $product = new Product(); 
    $product->ean13 = 12456;
    $product->name = array((int)Configuration::get('PS_LANG_DEFAULT') =>  'test');
    $product->link_rewrite = array((int)Configuration::get('PS_LANG_DEFAULT') => 'test');
    $product->id_category = 3;
    $product->id_category_default = 3;
    $product->redirect_type = '404';
    $product->price = 33;
    $product->wholesale_price = 25;
    $product->minimal_quantity = 1;
    $product->show_price = 1;
    $product->on_sale = 0;
    $product->online_only = 1;
    $product->meta_keywords = 'test';
    $product->id_tax_rules_group = 0;

    $product->add();
    $product->addToCategories(array(3));
    StockAvailable::setQuantity($product->id,'',10);


    //Add  main product image
    $id_product = $product->id;
    $url = 'http://www.webadress.com/image/product/color/0959.jpg';
    $shops = Shop::getShops(true, null, true);    
    $image = new Image();
    $image->id_product = $id_product;
    $image->position = Image::getHighestPosition($id_product) + 1;
    $image->cover = true; // or false;
    if (($image->validateFields(false, true)) === true &&
    ($image->validateFieldsLang(false, true)) === true && $image->add())
    {
        $image->associateTo($shops);
        if (!AdminImportController::copyImg($id_product, $image->id, $url, 'products', false))
        {
            $image->delete();
        }
    }
    ?>

enter image description here

1 个答案:

答案 0 :(得分:1)

如果图像被正确复制,您应该尝试(!AdminImportController::copyImg($id_product, $image->id, $url, 'products', true))重新生成微缩模型