Bonjour à tous,
Je reviens vers vous car je dois remettre les mains dans du sf1.4.x
J'ai juste un léger problème :
Je dois créer un formulaire d'upload de fichier pour ensuite ouvrir ce dit-fichier et importer ses contenus en BDD.
Scénario somme toute assez banale, cependant mon formulaire n'est jamais valide. En me penchant sur le pourquoi je me suis rendu compte que les paramètres du fichier n'apparaissent pas dans la requête et donc ne sont jamais "bind" avec le form.
Je vous mets les morceaux de code concernés.
ImportForm.class.php :
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
|
<?php
class ImportForm extends sfForm {
public function __construct() {
parent::__construct();
}
public function configure() {
$this->setWidgets(
array(
'fichier' => new sfWidgetFormInputFile(),
)
);
$this->widgetSchema->setNameFormat("import[%s]");
$this->setValidators(
array(
'fichier' => new sfValidatorFile(
array(
'required' => true,
'mime_types' => array(
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'text/csv'
),
'path' => sfConfig::get('sf_upload_dir').'/import'
)
),
)
);
}
}
?> |
actions.class.php
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public function executeImport(sfWebRequest $request) {
$this->form = new ImportForm();
if($request->isMethod(sfRequest::POST)) {
$this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
if($this->form->isValid()) {
$this->processImport();
}
}
} |
Résultat du
var_dump($request->getParameter($this->form->getName()))
array(1) { ["_csrf_token"]=> string(32) "ed458aad4f5eb27c5d19dfe0dca880f0" }
Résultat du
var_dump($request->getFiles($this->form->getName()))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| array(1) {
["fichier"]=>
array(5) {
["error"]=>
int(6)
["name"]=>
string(30) "monFichier.xlsx"
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["size"]=>
int(0)
}
} |
Si vous pouviez m'aider à valider ce formulaire svp...
Merci d'avance
Partager