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

Prestashop product image is not uploaded when product is created programmatically

在模块中使用下面的代码创建产品并将上传的图片分配给它。在 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();
        }
    }
    ?>

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