Bonjour à tous,

je suis toujours avec mon problème d'envoi de fichier (la barre de progression, je la finirait plus tard et si jamais j'ai besoin d'aide, je reviendrai vous voir). Cependant, j'aimerais insérer dans ma base de données quelques données sur le fichier uploadé (comme sa taille, son type et son extension).
Pour se faire j'ai un formulaire qui est généré dont j'ai caché les champs correspondant:
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
<?php
class FichiersForm extends BaseFichiersForm
{
  public function configure()
  {
	  unset(
      $this['created_at'], $this['updated_at'],
      $this['index_modificateur']
    );
 
	  $this->useFields(array('titre', 'famille', 'importance', 'nom_fichier', 'description', 'taille', 'extension', 'index_createur', 'type'));
 
	  $this->widgetSchema['nom_fichier'] = new sfWidgetFormInputFile(array(
  'label' => 'Fichier',
));
 
	  $this->validatorSchema['nom_fichier'] = new sfValidatorFile(array(
  'required'   => false,
  'path'       => sfConfig::get('sf_upload_dir').'/fichiers',
));
 
	  $this->widgetSchema['taille'] = new sfWidgetFormInputHidden();
	  $this->widgetSchema['extension'] = new sfWidgetFormInputHidden();
	  $this->widgetSchema['index_createur'] = new sfWidgetFormInputHidden();
	  $this->widgetSchema['type'] = new sfWidgetFormInputHidden();
 
  }
 
  public function generateNomFichierFilename(sfValidatedFile $file)
  {
	  	$date = strftime("%d%m%Y");
        $temps = strftime("%H%M%S");
 
        $nom_fichier = strtr(utf8_decode(substr($file->getOriginalName(),0, strlen($file->getOriginalName())-4)), utf8_decode("ÂÊÎÔÛÀ"), "AEIOU");
 
	    $filename = ''.$nom_fichier.'_'.$date.'_'.$temps.$file->getExtension($file->getOriginalExtension());
 
    return $filename;
  }
}
J'ai donc aussi créer une méthode permettant de surcharger la generation du nom du fichier par une generation plus explicite mais tout aussi personnelle.

Pour l'instant, dans mon action.class.php, il n'y a rien de grandiose. je sais que pour récupérer la taille, il faut que je fasse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$taille = $file->getSize();
, pour le type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$type = $file->getType();
et pour l'extension
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$extension = $file->getExtension($file->getOriginalExtension());
.
Mais comment insérer ces variables dans la base de données avec les autres valeurs transmises par le formulaire??

Merci de votre aide