IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

uploade un fichier sur yii framework


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut uploade un fichier sur yii framework
    salut a vous j'ai un petit soucis je voudrais uploade un fichier csv puis le parcourir afin de lire son contenu et charger dans un tableau et qui serais enfin a son tour charger dans une base donnée Mysql.Pour cette application j’utilise le framework Yii.mon soucis en que variable fichier n'est vue au niveau de mon contrôleur et j'aimerais savoir comment faire au niveau de la vue pour ma variable fichier soit soumis avec le formulaire.le problème étant que celui-ci j'utilise le Html standard et non les Helpers comme celui de l'architecture du formulaire.n’étant pas un expert en Php et sur Yii toute aide,conseil ou assistance serais la bien venus.Merci a+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    // mon controlleur ticketcontroller
    	public function actionCreate()
    	{
    		$model=new Ticket;
     
    		// Uncomment the following line if AJAX validation is needed
    		// $this->performAjaxValidation($model);
     
    		if(isset($_POST['Ticket']))
    		{
     
    		 if(isset($_FILES['Fichier']))
     
    			{
     
    					//Instantiation d'un objet pour un nouveau fichier
    			global $url;	
                $duration=$_POST['duration'];			
     
    			    //$url= basename($_FILES['Fichier']['name']);
    				//echo ($url);
     
    				$ObjFichier = new Uploadfile($_FILES['Fichier']);
     
    					//Choix des types de fichiers possibles
     
    				$ObjFichier->TypesValides = array('.csv');
     
    					//Upload du fichier et choix du répertoire de destination
     
    				$ObjFichier->UploadFichier('Folder CSV/') or die($ObjFichier->UploadErreur());
     
    				$Ticket = new Ticket();
    				$model->attributes=$_POST['Ticket'];
    				$this->InsertTicketfromfileCSV(basename($_FILES['Fichier']['name']));
    				$this->SaveTicket($listTicketUpload,$duration,$Ticket);
     
     
    				// if($model->save())
    					$this->redirect(array('view','id'=>$model->TicketId));
     
    			}
    			else
    			{
    			  echo 'erreur uploade file';
    			}
     
    		}
     
    		$this->render('create',array(
    			'model'=>$model,
    		));
    	}
     
    	    public function InsertTicketfromfileCSV($url) 
    		{   
    		    global  $listTicketUpload;
    		     $url='Folder CSV/'.$url;
    			$csv = new SplFileObject($url,'r');
    			$csv->setFlags(SplFlieObject::READ_CSV);
    			$csv->setCsvControl(';', '"', '"');
     
    			foreach($csv as $ligne)
    			{
    				$listTicketUpload[$i]=$ligne;
    				$i++;
    			}
    			unset($i);
    	    }
     
    	public function SaveTicket($listTicketUpload,$duration,Ticket $Tick){ 
    	   if(empty($listTicketUpload)) return;
    	   else {
    	       $i=0;$etat=0;
    	       foreach($listTicketUpload.count() as $i)
    				{
    					$ligne=$listTicketUpload[$i];
    					$don[0]=$ligne;
    					$don[1]=$duration;
    					$don[2]=$etat;
    					$Tick->CreateTicket($don);	
    					$insert= $this->db->prepare('INSERT INTO Ticket SET TicketCode =:ticketCode,Duration=:duration,Etat=:etat');
    					$insert->bindvalue(':ticketCode',$Tick->getticketCode(),PDO::PARAM_STR);
    					$insert->bindvalue(':duration',$Tick->getduration(),PDO::PARAM_STR);
    					$insert->bindvalue(':etat',$Tick->getEtat(),PDO::PARAM_INT);
    					$insert->execute(); 
    					$Tick->hydrate(array (
    					 'TicketId'=> $this->db->lastinsertId()	    
    					));
    					$i++;
    				}
    		unset($i);
     
    	    }		   
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    //mon model
    <?php
     
    class Ticket extends CActiveRecord
    {
     
    	public static function model($className=__CLASS__)
    	{
    		return parent::model($className);
    	}
     
     
    	public function tableName()
    	{
    		return 'ticket';
    	}
     
     
    	public function rules()
    	{
    		// NOTE: you should only define rules for those attributes that
    		// will receive user inputs.
    		return array(
    			array('TicketCode, Duration, Etat', 'required'),
    			array('Etat', 'numerical', 'integerOnly'=>true),
    			array('TicketCode', 'length', 'max'=>50),
    			// The following rule is used by search().
    			// Please remove those attributes that should not be searched.
    			array('TicketId, TicketCode, Duration, Etat', 'safe', 'on'=>'search'),
    		);
    	}
     
     
    	public function relations()
    	{
    		// NOTE: you may need to adjust the relation name and the related
    		// class name for the relations automatically generated below.
    		return array(
    		);
    	}
     
     
    	public function attributeLabels()
    	{
    		return array(
    			'TicketId' => 'Ticket',
    			'TicketCode' => 'Ticket Code',
    			'Duration' => 'Duration',
    			'Etat' => 'Etat',
    		);
    	}
     
     
    	public function search()
    	{
    		 attributes that
    		// should not be searched.
     
    		$criteria=new CDbCriteria;
     
    		$criteria->compare('TicketId',$this->TicketId);
    		$criteria->compare('TicketCode',$this->TicketCode,true);
    		$criteria->compare('Duration',$this->Duration,true);
    		$criteria->compare('Etat',$this->Etat);
     
    		return new CActiveDataProvider($this, array(
    			'criteria'=>$criteria,
    		));
    	}
     
    	public function initialize(array $don){	
    	 $this->setTicketCode($don[0]);
    	 $this->setDuration($don[1]);
    	 $this->setEtat($don[2]);	 
    	}
    	public function CreateTicket(array $don){
    	   $this->initialize($don);	  
    	}
     
     
     
      public function setTicketcode($info){
      	if (empty($info))
      	   throw  new Exception('chaine vide'); 
      	else 
      	  $this->Ticketcode=$info;   
      }
      public function setDuration($info){
      	if (empty($info))
      	   throw  new Exception('chaine vide'); 
      	else 
      	  $this->Duration=$info;   
      }
     
      public function setEtat($info){
      	if (empty($info))
      	   throw  new Exception('chaine vide'); 
      	else 
      	  $this->Etat=$info;   
      }
     
     
      public function getId(){
      	return $this->id;
      }
     
      public function getTicketCode(){
      	return  $this->TicketCode;
      }
     
      public function getDuration(){
     
      	return $this->Duration;
      }
     
      public function getEtat()
      {
        return $this->Etat;
      }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    // ma vue 
     
    <div class="form">
     
    <?php $form=$this->beginWidget('CActiveForm', array(
    	'id'=>'ticket-form',
    	'enableAjaxValidation'=>false,
    )); ?>
     
     
    	<?php echo $form->errorSummary($model); ?>
     
    	<div class="row">   
    		  <input type="file" name="Fichier">
    	</div>
     
    	<div class="row">
    		<?php echo $form->labelEx($model,'Duration'); ?>
    		<input text="duration" value="60"> 
    	</div>
     
    	<div class="row buttons">
    		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
    	</div>
     
    <?php $this->endWidget(); ?>
     
    </div><!-- form -->

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut uploade un fichier sur yii framework Recharger cette page Répondre à la discussion
    slt a vous je suppose que tout ce code vous a impeut fatigue alors j'exprime a nouveau voila je travail avec yii framework et j'aimerais savoir comme customize le form générer car je souhaite pourvoir créer un champ pour une uploade le problème est que ma variable name de mon input de type file n'est pas vue au niveau de actioncreater() dans le contrôler. après une longue analyse je suppose que ce passe je n'ai pas une propriété qui porte le nom de ma variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="Fichier">
    .Alors comment faire. car dans nom formulaire de création je dois faire cette uploade de fichier qui va entraine un trainement.

    Ainsi comment faire ce customize,toute aide,assistance ou conseil serais la bien venu. a+

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut uploade un fichier sur yii framework
    j'ai mon model qui herite de CActiveRecord mais j'aimerais aussi qu'il herite aussi de CFormModel pour que mes variables du formulaire puisse etre vue pas le controller. comment faire?

Discussions similaires

  1. Uploader un fichier sur un ftp .
    Par gnia?? dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 09/12/2006, 14h13
  2. Upload de fichiers sur FREE
    Par messier79 dans le forum Free
    Réponses: 1
    Dernier message: 11/09/2006, 15h33
  3. Réponses: 3
    Dernier message: 20/04/2006, 23h21
  4. Upload de fichier sur le serveur
    Par krfa1 dans le forum ASP
    Réponses: 9
    Dernier message: 29/11/2005, 13h50
  5. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo