我正在在我從我的自定義選項卡上載文件如下「文件沒有上傳」 Magento的錯誤,即使文件被上傳到特定的文件夾
我創建了一個觀察者的事件相關的應用稱爲catalog_product_save_after
。在特定的功能,我上傳這些文件到目錄/產品文件夾,並將其上傳到這些文件夾沒有任何錯誤。
但是,當我試圖將這些圖像分配給該特定產品時,出現以下錯誤。 File was not uploaded
在文件E:\xampp\htdocs\magento\lib\Varien\File\Uploader.php on line 152
如果我檢查system.log
然後我看到2012-08-24T11:33:15+00:00 ERR (3): User Error: Some transactions have not been committed or rolled back in E:\xampp\htdocs\magento\lib\Varien\Db\Adapter\Pdo\Mysql.php on line 3645
此錯誤。
我的觀察功能如下
public function Savedata($observer)
{
$params = Mage::app()->getRequest()->getParams();
$product = $observer->getEvent()->getProduct();
$product_id = $product->getId();
$filesData = array();
$keysData = array_keys($_FILES);
foreach($keysData as $keys)
{
$uploader = new Varien_File_Uploader("$keys");
$uploader->setAllowedExtensions(array('jpeg', 'jpg', 'png', 'tiff'));
$uploader->setAllowRenameFiles(true);
$uploader->setFilesDispersion(false);
$path = Mage::getBaseDir('media') . DS . "catalog" . DS . "product";
if(!is_dir($path))
{
mkdir($path);
}
$extension = pathinfo($_FILES["$keys"]['name'], PATHINFO_EXTENSION);
$date = new DateTime();
$file_name = $keys . "_" . $product_id . "." . $extension;
$_FILES["$keys"]['name'] = $file_name;
$uploader->save($path, $_FILES["$keys"]['name']);
$filesData[] = $path .DS. $_FILES["$keys"]['name'];
}
print_r($filesData);
///till this works file.. when i add following code, program dies.
try
{
$productData = Mage::getModel('catalog/product')->load($product_id);
print_r($productData->getData());
foreach($filesData as $file)
{
$productData->addImageToMediaGallery($file, "image" ,false, false);
}
$productData->save();
$productData = Mage::getModel('catalog/product')->load($product_id);
print_r($productData->getData());
}
catch (Exception $e)
{
echo $e->getMessage() . "||" . $e->getCode() . "||" . $e->getFile() . "||" . $e->getLine();
}
exit();
}
我要去的地方錯了什麼建議嗎?爲什麼會出現此錯誤?
我使用Magento的1.7
是的..我在想同樣的..非常好的解釋。非常感謝。 – KuKu