2010-10-11 57 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(); 
}