150 lines
4.2 KiB
PHP
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);
|
|
}
|
|
}
|
|
|
|
} |