2010-10-11 59 views
0

在此先感谢。Magento的图片上传问题

我是新来的Magento,我已经创建了一个模块,直接展示产品的Magento的前面。

在这个模块中,我已经创建了客户账户部分形式,客户可以填写必要的数据产品。产品数据已成功保存,但我无法看到前面的图像。我已经检查了客户上传的产品部分的所有内容也转到了管理部分进行审批。

我只是想表明,我上传的产品图片。我的代码如下,用于产品保存和图片上传。

对不起,我的英文。

-Jeet

$magentoProductModel = Mage::getModel('catalog/product'); 
$magentoProductModel->setWebsiteIds(array(Mage::app()->getStore()->getId())); 
$magentoProductModel->setAttributeSetId(4);//old 
//$magentoProductModel->setAttributeSetId(1); 
$magentoProductModel->setTypeId('simple'); 
$magentoProductModel->setName($data[name]); 
$magentoProductModel->setDescription($data[description]); 
$magentoProductModel->setPrice($data[price]); 
$magentoProductModel->setShortDescription($data[short_description]); 
$magentoProductModel->setWeight($data[weight]); 
$magentoProductModel->setStatus(1); 
$magentoProductModel->setCategoryIds(array(3)); 
$magentoProductModel->setTaxClassId('None'); 
//$magentoProductModel->setSku('rand-sku-' .rand(1,20000)); 

/* upload product image*/ 
$customerProductId=34; 
$mediDir = Mage::getBaseDir('media'); 
$imagesdir = $mediDir . '/customersproducts/' . $customerProductId . '/'; 

if(!file_exists($imagesdir)){ 
    return false; 
} 

foreach (new DirectoryIterator($imagesdir) as $fileInfo) { 
    //print_r($fileInfo); 

    if($fileInfo->isDot() || $fileInfo->isDir()) continue; 

    if($fileInfo->isFile()) { 
     //echo $fileInfo->getPathname();   
     $magentoProductModel->addImageToMediaGallery($fileInfo->getPathname(),array('image','small_image','thumbnail'), true, false, true); 
    } 
    //else { 
     //echo "no"; 
    //} 
} 
print_r($magentoProductModel); 

/*upload script end */ 


$saved = $magentoProductModel->save(); 
$lastId = $saved->getId(); 
$customerProduct = Mage::getModel('customerpartner/customerpartner_product')->load($lastId); 
$customerProduct->setProductId($lastId); 
$logged_in_user=Mage::getSingleton('customer/session')->getCustomer()->getId(); 
$customerProduct->setCustomerId($logged_in_user); 
$customerProduct->setCustomerId(); 
$customerProduct->save(); 
+0

问题为了将来参考,请使用帖子表单上的类似“101010”按钮将文本格式化为代码。它也有助于使其始终缩进,以便其他人可以阅读它。最后,请检查帖子下方的预览框,以便您可以提前查看这些内容。很高兴你解决了你自己的问题,谢谢你分享你的答案! – 2010-10-11 12:10:21

+0

约瑟夫感谢提示 – Jitendra 2010-10-11 12:30:08

回答

0

感谢谁访问了这个问题的人我已经解决了我的自我,只有在

下面的代码进行成像所需的阵列工作正常

$magentoProductModel = Mage::getModel('catalog/product'); 
$magentoProductModel->setWebsiteIds(array(Mage::app()->getStore()->getId())); 
$magentoProductModel->setAttributeSetId(4);//old 
//$magentoProductModel->setAttributeSetId(1); 
$magentoProductModel->setTypeId('simple'); 
$magentoProductModel->setName($data[name]); 
$magentoProductModel->setDescription($data[description]); 
$magentoProductModel->setPrice($data[price]); 
$magentoProductModel->setShortDescription($data[short_description]); 
$magentoProductModel->setWeight($data[weight]); 
$magentoProductModel->setStatus(1); 
$magentoProductModel->setCategoryIds(array(3)); 
$magentoProductModel->setTaxClassId('None'); 
//$magentoProductModel->setSku('rand-sku-' .rand(1,20000)); 

/* upload product image*/ 
$customerProductId=34; 
$mediDir = Mage::getBaseDir('media'); 
$imagesdir = $mediDir . '/customersproducts/' . $customerProductId . '/'; 

if(!file_exists($imagesdir)){ 
    return false; 
} 

foreach (new DirectoryIterator($imagesdir) as $fileInfo) { 

    //print_r($fileInfo); 

    if($fileInfo->isDot() || $fileInfo->isDir()) continue; 

    $visibility = array (
     'thumbnail', 
     'small_image', 
     'image' 
    ); 

    if($fileInfo->isFile()) { 
    $fileInfo->getPathname();   
    $magentoProductModel->addImageToMediaGallery($fileInfo->getPathname(), $visibility, false, false); 
    } 
    //else 
    //{ 
    //echo "no"; 
    //} 

}  

/*upload script end */ 


$saved = $magentoProductModel->save(); 
$lastId = $saved->getId(); 
$customerProduct = Mage::getModel('customerpartner/customerpartner_product')->load($lastId); 
$customerProduct->setProductId($lastId); 
$logged_in_user=Mage::getSingleton('customer/session')->getCustomer()->getId(); 
$customerProduct->setCustomerId($logged_in_user); 
$customerProduct->setCustomerId(); 
$customerProduct->save(); 

} catch(Exception $e){ 
    echo $e; 
    Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
    $this->_redirectReferer(); 
}