Я разработал облачную область для каждого пользователя на своем сайте электронной коммерции с Magento. В этой области пользователь может загружать как отдельные файлы, так и несколько файлов. Наконец, он также может удалить загруженный файл. Этот код находится в php, и я разработал его на странице интерфейса клиентской области (area-lo go .p html). Код такой:
<?php
$fileName = '';
if (isset($_FILES['logoUp']['name'][$key]) && $_FILES['logoUp']['name'][$key] != '') {
try {
$fileName = preg_replace('/[^A-Za-z0-9\-.]/', '', $_FILES['logoUp']['name'][$key]);
array_push($photos, $fileName);
$uploader = new Varien_File_Uploader(
array(
'name' => $_FILES['logoUp']['name'][$key],
'type' => $_FILES['logoUp']['type'][$key],
'tmp_name' => $_FILES['logoUp']['tmp_name'][$key],
'error' => $_FILES['logoUp']['error'][$key],
'size' => $_FILES['logoUp']['size'][$key]
)
);
$uploader->setAllowedExtensions(array('ai','pdf','eps','svg','psd','jpg','jpeg','png','tif','tiff'));
$uploader->setAllowRenameFiles(false);
$uploader->setFilesDispersion(false);
$path = Mage::getBaseDir().DS.'clienti'.DS.$customerName;
if(!is_dir($path)){
mkdir($path, 0777, true);
}
$uploader->save($path, $fileName);
//CODICE IMAGICK PER ANTEPRIMA FILE PSD, TIF, TIFF E EPS
if(preg_match("/\.(psd|tif|tiff|eps|svg)$/", $fileName)){
$fileNameConv = substr($fileName, 0, strpos($fileName, "."));
$realPath = Mage::getBaseDir() . '/clienti/'.$customerName.'/'.$fileName;
$savePath = Mage::getBaseDir() . '/clienti/'.$customerName;
if(file_exists($realPath)){
$im = new Imagick();
$im->readimage($realPath);
$im->setImageFormat('jpeg');
$im->writeImage($savePath . '/'.$fileNameConv.'.jpg');
$im->clear();
$im->destroy();
}
}
//FINE CODICE IMAGICK PER ANTEPRIMA FILE PSD, TIF, TIFF E EPS
$connectionresource = Mage::getSingleton('core/resource');
$connectionWrite = $connectionresource->getConnection('core_write');
$resizePath = Mage::getBaseUrl().'clienti'.'/'.$customerName;
$pathAss = $resizePath . "/" . $fileName;
$dateUpload = date("d-m-Y");
$customerId = Mage::getSingleton('customer/session')->getCustomer()->getId();
//INSERISCE UNA NUOVA RIGA PER OGNI LOGO CREATO
$queryInsertLogo = "INSERT INTO magesf_logoupload (image_url,image_date,image_title,customer_id)
VALUES ('$pathAss','$dateUpload','$fileName','$customerId') ";
$binds = array(
'image_url' => $resizedPath,
'image_date' => $dateUpload,
'image_title' => $fileName,
'customer_id' => $customerId
);
$connectionWrite->query($queryInsertLogo, $binds);
echo '<div class="success-msg"><i class="icon_check" style="font-size:20px;"></i> '.$this->__('Logos correctly added to your area').'</div>';
} catch (Exception $e) {
$error = true;
echo '<div class="error-msg"><i class="icon_check" style="font-size:20px;"></i> '.$this->__('Logos can not added to your area').' '.$increId.'</div>';
}
}
?>
Я хотел бы перенести этот код в бэкэнд-файл моего пользовательского модуля и заставить переменную foreach и $ _FILES работать одинаково. Я уже пытался скопировать и вставить этот код в бэкэнд-файл моего модуля, но тогда страница не работает. Как я могу это сделать?
PS Опасно ли помещать подобные запросы в файл веб-интерфейса?
Спасибо за любую помощь