0

I am facing Fatal error: Uncaught exception 'Mage_Core_Exception' with message 'Image does not exist.'

<pre>
<?php
set_time_limit(0);
ini_set('memory_limit', '1024M');
include_once "app/Mage.php";
include_once "downloader/Maged/Controller.php";

Mage::init();

$app = Mage::app('default');

//The category names should be exactly the same name from the csv file where the id is the corresponding category id in magento. This is done when the csv file doesn't contain ids for categories but the name of categories.
$categories = array(
    'Category 1' => 3,
    'Category 2' => 4,
    'Category 3' =>5,
    'Category 4'=>6,


);
$row = 0;

if (($handle = fopen("trem2.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        echo 'Importing product: '.$data[0].'<br />';
        foreach($data as $d)
        {
            echo $d.'<br />';
        }
        $num = count($data);
        //echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;

        if($row == 1){ continue;}

           $product = Mage::getModel('catalog/product');

        $product->setSku($data[0]);
        $product->setName($data[3]);
        $product->setDescription($data[6]);
        $product->setShortDescription('');
        $product->setManufacturer($data[20]);
        $product->setPrice($data[9]);
        $product->setTypeId('simple');


        $fullpath = 'media/catalog/product/thumb/';
        $ch = curl_init ($data[14]);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
        $rawdata=curl_exec($ch);
        curl_close ($ch);
       echo  $fullpath = $fullpath.$data[2].'.jpg';
        if(file_exists($fullpath)) {
            unlink($fullpath);
        }
        $fp = fopen($fullpath,'x');
        fwrite($fp, $rawdata);
        fclose($fp);
       $product->addImageToMediaGallery($fullpath, 'thumbnail', false);

        $fullpath = 'media/catalog/product/small/';
        $ch = curl_init ($data[2]);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
        $rawdata=curl_exec($ch);
        curl_close ($ch);
        $fullpath = $fullpath.$data[2].'.jpg';
        if(file_exists($fullpath)) {
            unlink($fullpath);
        }
        $fp = fopen($fullpath,'x');
        fwrite($fp, $rawdata);
        fclose($fp);
       $product->addImageToMediaGallery($fullpath, 'small-image', false);

        $fullpath = 'media/catalog/product/high/';
        $ch = curl_init ($data[2]);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
        $rawdata=curl_exec($ch);
        curl_close ($ch);
        echo $data[2];
        echo $fullpath = $fullpath.$data[2].'.jpg';
        if(file_exists($fullpath)) {
            unlink($fullpath);
        }
        $fp = fopen($fullpath,'x');
        fwrite($fp, $rawdata);
        fclose($fp);
        $product->addImageToMediaGallery($fullpath, 'image', false);



        $product->setAttributeSetId(4); // need to look this up
        $product->setCategoryIds(array($categories[$data[11]])); // need to look these up
        $product->setWeight(0);
        $product->setTaxClassId(2); // taxable goods
        $product->setVisibility(4); // catalog, search
        $product->setStatus(1); // enabled

        // assign product to the default website
        $product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));

     $product->save();      

$stockItem = Mage::getModel('cataloginventory/stock_item');
            $stockItem->assignProduct($product);
            $stockItem->setData('is_in_stock', 1);
            $stockItem->setData('stock_id', 1);
            $stockItem->setData('store_id', 1);
            $stockItem->setData('manage_stock', 1);
            $stockItem->setData('use_config_manage_stock', 0);
            $stockItem->setData('min_sale_qty', 1);
            $stockItem->setData('use_config_min_sale_qty', 0);
            $stockItem->setData('max_sale_qty', 1000);
            $stockItem->setData('use_config_max_sale_qty', 0);
            $stockItem->setData('qty', $data[4]);
            $stockItem->save();




        $product->save();    


    }
    fclose($handle);

}


?>
</pre>

Or what is the other way to import?

Thanks.!

4
  • what issue .. yum have facing
    – Amit Bera
    Commented Jan 16, 2017 at 7:08
  • @AmitBera he is getting : Fatal error: Uncaught exception 'Mage_Core_Exception' with message 'Image does not exist.' Commented Jan 16, 2017 at 7:10
  • 1
    @AmitBera I am facing Fatal error: Uncaught exception 'Mage_Core_Exception' with message 'Image does not exist.' while import products programmatically using the above code... Commented Jan 16, 2017 at 9:14
  • if nothing worked for you, you can go with magmi Commented Jan 16, 2017 at 13:18

1 Answer 1

1

I dont understand why you use there unlink , it will delete your image and thats why you get image not find error

    $fullpath = 'media/catalog/product/thumb/';
    $ch = curl_init ($data[14]);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    $rawdata=curl_exec($ch);
    curl_close ($ch);
   echo  $fullpath = $fullpath.$data[2].'.jpg';
    /*if(file_exists($fullpath)) {
        unlink($fullpath);
    }*/ //comment this code and check 
    $fp = fopen($fullpath,'x');
    fwrite($fp, $rawdata);
    fclose($fp);
1
  • Thanks , now the image file uploaded but uploaded image got 0 bytes. Commented Jan 16, 2017 at 12:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.