CodeIgniter - Validierung von Formularen und Datei-Upload-Daten
Ich Frage mich, ob es gibt einen Weg, um eine Datei zu überprüfen die Größe mit der form Validierung Klasse in CodeIgniter 2.0. Ich habe ein Formular mit einem Datei-input und-ich will etwas wie das hier tun:
$this->form_validation->set_rule('file', 'File',
'file_type[image/jpeg|image/gif|image/png]|file_max_size[500]');
Ich dachte über die Verlängerung der Validierung Klasse zu kombinieren mit dem laden der Klasse und überprüfen auf der Grundlage der Daten hochladen, aber das wäre zeitaufwendig.
Kennt jemand eine extension für die Formular-Validierung-Klasse, würde so etwas tun?
- Ich in der Regel tun dies, indem Sie zuerst die Validierung der Formular und wenn alles OK ist, ich beginne die überprüfung der Gültigkeit der Datei-upload.
Du musst angemeldet sein, um einen Kommentar abzugeben.
File-Upload Klasse hat Ihren eigenen Satz von Validierungs-Regeln, die Sie festlegen können, wie so
(entnommen aus CI-docs)
do_upload()
und es gibt eine Funktion, um gezielt upload-Fehler bei der Validierung. Es ist alles in den Unterlagen, die ich ein link in meine Antwort.$this->form_validation->set_rules( 'file_to_upload', 'File To Upload', '' );
), dann kann man den upload-Fehlermeldung in der form_validation Objekt und es wird korrekt angezeigt, automatisch ($this->form_validation->_field_data['file_to_upload']['error'] = $this->upload->display_errors( '', '' );
). Die einfachen Anführungszeichen sind notwendig, innerhalb$this->upload->display_errors() to remove the
<p></p>` - Wrapper sind in der Regel Hinzugefügt vondisplay_errors()
.Ich hatte das gleiche problem. Ich baute ein Kontakt-Formular, das dem Benutzer ermöglicht, einen avatar hochladen und Bearbeiten Sie die anderen Infos an der gleichen Zeit. Form-überprüfungs-Fehlern angezeigt werden separat für jedes Feld. Ich konnte nicht leisten, einen anderen display-System für die Datei-Eingabe und die anderen - ich habe eine standard-Methode, die kümmert sich um die Anzeige von Fehlern.
Habe ich eine controller-Eigenschaft definiert, und eine callback-Validierung Funktion zum Zusammenführen von jedem upload einen Fehler bei der Formular-Validierung ersetzt.
Hier ist ein Auszug von meinem code:
Hinweis: als Datei-Eingabe nicht wieder Auffüllen, wenn es irgendwelche Fehler in den anderen Formular-Felder ein, die auf hochladen erfolgreich, ich speichern und aktualisieren Sie es vor allen anderen die überprüfung stattfindet - so dass der Benutzer nicht brauchen, um erneut die Datei. Meine Meldung ist ein bisschen anders, wenn es passiert.