enrichissement/application/controllers/EnvoiController.php
2012-05-09 21:34:16 +00:00

150 lines
4.2 KiB
PHP

<?php
class EnvoiController extends Zend_Controller_Action
{
public function init()
{
$this->view->headScript()->appendFile('/scripts/enrichissement.js', 'text/javascript');
$this->view->headLink()->appendStylesheet('/styles/enrichissement.css');
}
/**
* Enter description here ...
*/
public function indexAction(){}
public function fileformAction()
{
$this->view->headScript()->appendFile('/scripts/jquery.form.js', 'text/javascript');
$this->view->headScript()->appendFile('/scripts/jqueryprogressbar.js', 'text/javascript');
$this->view->assign('filesize', ini_get('upload_max_filesize'));
//Récupérer les clients
$dbConfig = array(
'host' => MYSQL_HOST,
'port' => MYSQL_PORT,
'username' => MYSQL_USER,
'password' => MYSQL_PASS,
'dbname' => MYSQL_DEFAULT_DB,
'driver_options' => array(MYSQLI_INIT_COMMAND => 'SET NAMES UTF8;'),
//'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;')
);
$sqlmetier = Zend_Db::factory('Mysqli', $dbConfig);
$sql = $sqlmetier->select()
->from('sdv1.clients', array('id', 'nom'))
->where("actif = 'Oui'");
$clients = $sqlmetier->fetchAll($sql, null, Zend_Db::FETCH_OBJ);
$this->view->assign('clients', $clients);
}
public function fileuploadAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$name = $request->getParam('ref', '');
$idClient = $request->getParam('client');
if (empty($name)) {
echo "Référence non définie.";
}
else
{
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path');
$path = realpath($config->data).'/validation';
if(!file_exists($path)) mkdir($path);
if ( isset($_FILES) && count($_FILES)==1 ){
$n = $_FILES['fichier']['name'];
$s = $_FILES['fichier']['size'];
$tmp_name = $_FILES['fichier']['tmp_name'];
$extValide = array('csv');
$extension = strrchr($n,'.');
$extension = substr($extension,1);
//Vérifier l'extension du fichier
if(!in_array($extension, $extValide)){
echo "Extension de fichier incorrect !";
} elseif (move_uploaded_file($tmp_name, $path.'/'.$idClient.'-'.$name.'.'.$extension)){
echo "Fichier envoyé, <a href=\"".
$this->view->url(array(
'controller' => 'envoi',
'action' => 'checkfile',
'file' => $idClient.'-'.$name.'.'.$extension,
))
."\">Vérifier le format</a>";
} else {
echo "Erreur : ".$_FILES['fichier']['error'];
}
}
}
}
/**
* Etat de progression de l'upload du fichier
*/
public function fileprogressAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$request = $this->getRequest();
$key = $request->getParam('key', '');
if (!empty($key)) {
//$rep sera égal à false si la clef n'existe pas dans le cache apc
$rep = apc_fetch('upload_'.$key);
echo json_encode($rep);
}
}
public function checkfileAction()
{
$request = $this->getRequest();
$file = $request->getParam('file');
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path');
$pathIn = $config->data.'/validation';
$pathOut = $config->data.'/clients';
if(!file_exists($pathOut)) mkdir($pathOut);
//Vérifier le format du fichier
require_once 'Scores/Enrichissement.php';
$data = new Enrichissement();
$result = $data->checkFileEntete($pathIn.'/'.$file);
if ($result===FALSE)
{
$this->view->assign('errors',array("Impossible de lire le fichier !"));
//Supprimer le fichier
unlink($pathIn.'/'.$file);
}
elseif (is_array($result))
{
$this->view->assign('errors',$result);
//Supprimer le fichier
unlink($pathIn.'/'.$file);
}
elseif (is_int($result))
{
//Enregistrer dans la bdd
$commandesM = new Application_Model_Commandes();
$data = array(
'fichier' => $file,
'idProfil' => 0,
'nbLigne' => $result,
'nbLigneT' => 0,
'error' => '',
'dateAdded' => date('Y-m-d H:i:s'),
);
if ($commandesM->insert($data)){
//Déplacer le fichier
rename($pathIn.'/'.$file, $pathOut.'/'.$file);
}
$this->view->assign('nb', $result);
}
}
}