| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15207 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.file.transfer.validators">
- <title>Prüfungen für Zend_File_Transfer</title>
- <para>
- <classname>Zend_File_Transfer</classname> wird mit verschiedenen Datei-relevanten Prüfungen ausgeliefert
- welche verwendet werden können um die Sicherheit zu erhöhen und mögliche Attacken zu verhindern.
- Es ist zu beachten das diese Prüfungen nur so effektiv sind wie Sie effektiv angewendet verwendet.
- Alle Prüfungen die mit <classname>Zend_File_Transfer</classname> angeboten werden können in der
- <classname>Zend_Validator</classname> Komponente gefunden werden und heißen <classname>Zend_Validate_File_*</classname>.
- Die folgenden Prüfungen sind vorhanden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>Count</code>: Diese Prüfung checkt die Anzahl der Dateien. Es kann ein Minimum und ein
- Maximum spezifiziert werden. Ein Fehler wird geworfen wenn einer der zwei Werte
- überschritten wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Crc32</code>: Diese Prüfung checkt den Crc32 Hashwert vom Inhalt einer Datei. Sie basiert
- auf der <code>Hash</code> Prüfung und bietet eine bequeme und einfache Prüfung die nur Crc32
- unterstützt.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>ExcludeExtension</code>: Diese Prüfung checkt die Dateierweiterung. Sie wirft einen Fehler
- wenn die angegebene Datei eine definierte Erweiterung hat. Mit dieser Prüfung können definierte
- Erweiterungen von der Prüfung ausgenommen werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>ExcludeMimeType</code>: Diese Prüfung prüft den MIME Typ von Dateien. Sie kann auch
- Arten von MIME Typen prüfen und wirft einen Fehler wenn der MIME Typ einer spezifizierten
- Datei passt.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Exists</code>: Diese Prüfung checkt ob Dateien existieren. Sie wirft einen Fehler wenn
- eine spezifizierte Datei nicht existiert.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Extension</code>: Diese Prüfung checkt die Dateierweiterung. Sie wirft einen Fehler
- wenn eine spezifizierte Datei eine undefinierte Erweiterung hat.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>FilesSize</code>: Diese Prüfung checkt die Größe von geprüften Dateien.
- Sie merkt sich intern die Größe aller geprüften Dateien und wirft einen Fehler wenn die
- Summe aller spezifizierten Dateien die definierte Größe überschreitet. Sie bietet auch
- Mindest- und Maximalwerte an.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>ImageSize</code>: Diese Prüfung checkt die Größe von Bildern. Sie prüft die Breite
- und Höhe und erzwingt sowohl eine Mindest- als auch eine Maximalegröße.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>IsCompressed</code>: Diese Prüfung checkt ob die Datei komprimiert ist. Sie basiert
- auf der <code>MimeType</code> Prüfung und validiert Komprimierungsarchiven wie Zip
- oder Arc. Sie kann auch auf andere Archive begrenzt werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>IsImage</code>: Diese Prüfung checkt ob die Datei ein Bild ist. Sie basiert auf der
- <code>MimeType</code> Prüfung und validiert Bildedateien wie Jpg oder Gif. Sie kann auch
- auf andere Bildtypen begrenzt werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Hash</code>: Diese Prüfung check den Hashwert des Inhalts einer Datei. Sie unterstützt
- mehrere Algorithmen.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Md5</code>: Diese Prüfung checkt den Md5 Hashwert vom Inhalt einer Datei. Sie basiert
- auf der <code>Hash</code> Prüfung und bietet eine bequeme und einfache Prüfung die nur
- Md5 unterstützt.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>MimeType</code>: Diese Prüfung prüft den MIME Typ von Dateien. Sie kann auch
- Arten von MIME Typen prüfen und wirft einen Fehler wenn der MIME Typ einer spezifizierten
- Datei nicht passt.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>NotExists</code>: Diese Prüfung checkt ob Dateien existieren. Sie wirft einen Fehler
- wenn eine angegebene Datei existiert.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Sha1</code>: Diese Prüfung checkt den Sha1 Hashwert vom Inhalt einer Datei. Sie basiert
- auf der <code>Hash</code> Prüfung und bietet eine bequeme und einfache Prüfung die nur Sha1
- unterstützt.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Size</code>: Diese Prüfung ist fähig Dateien auf Ihre Dateigröße zu prüfen. Sie
- bietet eine Mindest- und eine Maximalgröße an und wirft einen Fehler wenn eine der
- beiden Grenzen überschritten wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>Upload</code>: Diese Prüfung ist eine interne. Sie prüft ob ein Upload zu einem
- Fehler geführt hat. Dieser darf nicht gesetzt werden, da er automatisch durch
- <classname>Zend_File_Transfer</classname> selbst gesetzt wird. Deshalb darf diese Prüfung nicht
- direkt verwendet werden. Man sollte nur wissen das Sie existiert.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>WordCount</code>: Diese Prüfung ist fähig die Anzahl von Wörtern in Dateien zu
- prüfen. Sie bietet eine Mindest- und Maximalanzahl und wirft einen Fehler wenn eine der
- Grenzen überschritten wird.
- </para>
- </listitem>
- </itemizedlist>
- <sect2 id="zend.file.transfer.validators.usage">
- <title>Prüfungen mit Zend_File_Transfer verwenden</title>
- <para>
- Prüfungen einzubinden ist sehr einfach. Es gibt verschiedene Methoden für das
- Hinzufügen und Manipulieren von Prüfungen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>isValid($files = null)</code>: Prüft die spezifizierten Dateien indem alle
- Prüfungen verwendet werden. <code>$files</code> kann entweder ein richtiger Dateiname,
- der Name des Elements, oder der Name der temporären Datei sein.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>addValidator($validator, $breakChainOnFailure, $options = null, $files = null)</code>:
- Fügt die spezifizierte Prüfung zu den Prüfungsstapel hinzu (optional nur zu den Datei(en)
- die spezifiziert wurden). <code>$validator</code> kann entweder eine aktuelle
- Prüfinstanz sein oder ein Kurzname der den Prüfungstyp spezifiziert (z.B. 'Count').
- </para>
- </listitem>
- <listitem>
- <para>
- <code>addValidators(array $validators, $files = null)</code>: Fügt die spezifizierten
- Prüfungen zum Prüfungsstapel hinzu. Jeder Eintrag kann entweder ein Prüfungstyp/-options
- Paar sein oder ein Array mit dem Schlüssel 'validator' das die Prüfung spezifiziert.
- Alle anderen Optionen werden als Optionen für die Instanzierung der Prüfung angenommen.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>setValidators(array $validators, $files = null)</code>: Überschreibt alle bestehenden
- Prüfungen mit den spezifizierten Prüfungen. Die Prüfungen sollten der Syntax folgen die
- für <code>addValidators()</code> definiert ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>hasValidator($name)</code>: Zeigt ob eine Prüfung registriert wurde.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>getValidator($name)</code>: Gibt eine vorher registrierte Prüfung zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>getValidators($files = null)</code>: Gibt registrierte Prüfungen zurück. Wenn
- <code>$files</code> spezifiziert wurde, werden die Prüfungen für die betreffende Datei
- oder das Set an Dateien zurückgegeben.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>removeValidator($name)</code>: Entfernt eine vorher registrierte Prüfung.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>clearValidators()</code>: Löscht alle registrierten Prüfungen.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.file.transfer.validators.usage.example">
- <title>Prüfungen zu einem File Transfer Objekt hinzufügen</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Setzt eine Dateigröße von 20000 Bytes
- $upload->addValidator('Size', false, 20000);
- // Setzt eine Dateigröße von mindestens 20 Bytes und maximal 20000 Bytes
- $upload->addValidator('Size', false, array('min' => 20, 'max' => 20000));
- // Setzt eine Dateigröße von mindestens 20 Bytes und Maximal
- // 20000 Bytes und eine Dateianzahl in einem Schritt
- $upload->setValidators(array(
- 'Size' => array('min' => 20, 'max' => 20000),
- 'Count' => array('min' => 1, 'max' => 3),
- ));
- ]]></programlisting>
- </example>
- <example id="zend.file.transfer.validators.usage.exampletwo">
- <title>Prüfungen auf eine einzelne Datei limitieren</title>
- <para>
- <code>addValidator()</code>, <code>addValidators()</code>, und <code>setValidators()</code>
- akzeptieren ein endendes Argument <code>$files</code>. Dieses Argument kann verwendet werden
- um eine Datei oder ein Array von Dateien zu spezifizieren auf dem die angegebene Prüfung
- gesetzt werden soll.
- </para>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Setzt die Dateigröße auf 20000 Bytes und limitiert Sie nur auf 'file2'
- $upload->addValidator('Size', false, 20000, 'file2');
- ]]></programlisting>
- </example>
- <para>
- Normal sollte die <code>addValidators()</code> Methode verwendet werden, welche
- mehrmals aufgerufen werden kann.
- </para>
- <example id="zend.file.transfer.validators.usage.examplemultiple">
- <title>Mehrere Prüfungen hinzufügen</title>
- <para>
- Oft ist es einfacher <code>addValidator()</code> mehrere Male aufzurufen mit einem Aufruf für
- jede Prüfung. Das erhöht auch die Lesbarkeit und macht den Code wartbarer. Alle Methoden
- implementieren das Fluent-Interface, deshalb können Aufrufe einfach wie anbei gezeigt
- gekoppelt werden:
- </para>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Setzt die Dateigröße auf 20000 Bytes
- $upload->addValidator('Size', false, 20000)
- ->addValidator('Count', false, 2)
- ->addValidator('Filessize', false, 25000);
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten, dass das mehrfache Setzen der gleichen Prüfung erlaubt
- ist, dass das aber zu Problemen führen kann wenn verschiedene Optionen für die gleiche
- Prüfung verwendet werden.
- </para>
- </note>
- <para>
- Letztendlich können Dateien einfach geprüft werden indem <code>isValid()</code> verwendet wird.
- </para>
- <example id="zend.file.transfer.validators.usage.exampleisvalid">
- <title>Prüfen der Dateien</title>
- <para>
- <code>isValid()</code> akzeptiert den Dateinamen der hochgeladenen oder heruntergeladenen
- Datei, den temporären Dateinamen oder den Namen des Formularelements. Wenn kein Parameter
- oder null angegeben wird, werden alle gefundenen Dateien geprüft.
- </para>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Setzt die Dateigröße auf 20000 Bytes
- $upload->addValidator('Size', false, 20000)
- ->addValidator('Count', false, 2)
- ->addValidator('Filessize', false, 25000);
- if ($upload->isValid()) {
- print "Prüfung fehlgeschlagen";
- }
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten das <code>isValid()</code> automatisch aufgerufen wird, wenn die Dateien
- empfangen werden und es zuvor noch nicht aufgerufen wurde.
- </para>
- </note>
- <para>
- Wenn Prüfungen fehlgeschlagen sind, ist es eine gute Idee Informationen über die
- gefundenen Probleme zu erhalten. Um diese Information zu erhalten können die Methoden
- <code>getMessages()</code>, welche alle Prüfmeldungen als Array zurückgibt,
- <code>getErrors()</code> welche alle Fehlercodes zurückgibt, und <code>hasErrors()</code>
- welche true zurückgibt sobald ein Prüffehler gefunden wurde, verwendet werden.
- </para>
- </sect2>
- <sect2 id="zend.file.transfer.validators.count">
- <title>Count Prüfung</title>
- <para>
- Die <code>Count</code> Prüfung checkt die Anzahl der Dateien die angegeben wurde. Sie unterstützt
- die folgenden Schlüssel für Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>min</code>: Setzt die minimale Anzahl der Dateien die übertragen wird.
- </para>
- <note>
- <para>
- Wenn diese Option verwendet wird, muß die minimale Anzahl an Dateien
- übergeben werden wenn die Prüfung das erste Mal aufgerufen wird; sonst wird ein
- Fehler zurückgegeben.
- </para>
- </note>
- <para>
- Mit dieser Option kann die Mindestanzahl an Dateien definiert werden die man Empfangen sollte.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>max</code>: Setzt die maximale Anzahl an Dateien die übertragen wird.
- </para>
- <para>
- Mit dieser Option kann die Anzahl der Dateien limitiert werden die man akzeptiert,
- aber genauso eine mögliche Attacke erkennen wenn mehr Dateien übertragen werden als
- im Formular definiert wurden.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Wenn diese Prüfung mit einem String oder Integer initiiert wird, wird Sie als
- <code>max</code> verwendet. Es können aber auch die Methoden <code>setMin()</code> und
- <code>setMax()</code> verwendet werden um beide Optionen im Nachhinein zu setzen und
- <code>getMin()</code> und <code>getMax()</code> um die aktuell gesetzten Werte zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.count.example">
- <title>Die Count Prüfung verwenden</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Die Anzahl der Dateien auf maximal 2 limitieren
- $upload->addValidator('Count', false, 2);
- // Die Anzahl der Dateien auf maximal 5 und mindestens 1 Datei limitieren
- $upload->addValidator('Count', false, array('min' =>1, 'max' => 5));
- ]]></programlisting>
- </example>
- <note>
- <para>
- Beachte das diese Prüfung die Anzahl der geprüften Dateien intern speichert. Die Datei
- welche das Maximum überschrietet wird als Fehler zurückgegeben.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.crc32">
- <title>Crc32 Prüfung</title>
- <para>
- Die <code>Crc32</code> Prüfung checkt den Inhalt einer übertragenen Datei durch hashen. Diese
- Prüfung verwendet die Hash Erweiterung von PHP mit dem Crc32 Algorithmus. Sie unterstützt die
- folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array
- Dieser Wert wird als Hash verwendet gegen den geprüft wird.
- </para>
- <para>
- Man kann mehrere Hashes setzen indem unterschiedliche Schlüssel angegeben werden.
- Jeder von Ihnen wird geprüft und die Prüfung schlägt nur fehl wenn alle Werte
- fehlschlagen.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.file.transfer.validators.crc32.example">
- <title>Verwenden der Crc32 Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Prüft ob der Inhalt der hochgeladenen Datei den angegebenen Hash hat
- $upload->addValidator('Hash', false, '3b3652f');
- // Begrenzt diese Prüfung auf zwei unterschiedliche Hashes
- $upload->addValidator('Crc32', false, array('3b3652f', 'e612b69'));
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.file.transfer.validators.excludeextension">
- <title>ExcludeExtension Prüfung</title>
- <para>
- Die <code>ExcludeExtension</code> Prüfung checkt die Dateierweiterung der angegebenen Dateien.
- Sie unterstützt die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array.
- Dieser Wert wird verwendet um zu prüfen ob die angegebene Datei diese Dateierweiterung
- nicht verwendet.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>case</code>: Setzt ein Boolean der anzeigt ob die Prüfung auf die
- Klein/Großschreibung achten soll. Standardmäßig ist die Klein/Großschreibung egal.
- Beachte das dieser Schlüssel für alle vorhandenen Erweiterungen angewendet werden kann.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Dieser Prüfer akzeptiert mehrere Erweiterungen entweder als komma-getrennten String, oder als
- ein Array. Man kann auch die <code>setExtension()</code>, <code>addExtension()</code> und
- <code>getExtension()</code> Methoden verwenden um Erweiterungen zu setzen und zu erhalten.
- </para>
- <para>
- In einigen Fällen ist es nützlich auch auf Klein/Großschreibung zu testen. Deshalb erlaubt
- der Constructor einen zweiten Parameter <code>$case</code> der, wenn er auf true gesetzt
- wird, die Erweiterungen abhängig von der Klein/Großschreibung prüft.
- </para>
- <example id="zend.file.transfer.validators.excludeextension.example">
- <title>Die ExcludeExtension Prüfung verwenden</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Dateien mit der Erweiterung php oder exe nicht erlauben
- $upload->addValidator('ExcludeExtension', false, 'php,exe');
- // Dateien mit der Erweiterung php oder exe nicht erlauben
- // aber die Array Schreibweise verwenden
- $upload->addValidator('ExcludeExtension', false, array('php', 'exe'));
- // Prüft abhängig von der Groß-/Kleinschreibung
- $upload->addValidator('ExcludeExtension',
- false,
- array('php', 'exe', 'case' => true));
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten das diese Prüfung nur die Dateierweiterung prüft. Sie prüft nicht
- den MIME Typ der Datei.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.excludemimetype">
- <title>ExcludeMimeType Prüfung</title>
- <para>
- Die <code>MimeType</code> Prüfung checkt den MIME Typ von übertragenen Dateien. Sie unterstützt
- die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array.
- Setzt den MIME Typ gegen den geprüft werden soll.
- </para>
- <para>
- Mit dieser Option kann der MIME Typ von Dateien definiert werden die nicht akzeptiert werden.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Diese Prüfung akzeptiert viele MIME Typ entweder als Komma-getrennter String, oder als
- Array. Man kan auch die Methoden <code>setMimeType()</code>, <code>addMimeType()</code>,
- und <code>getMimeType()</code> verwenden um MIME Typen zu setzen und zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.excludemimetype.example">
- <title>Verwendung der ExcludeMimeType Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Verweigert den MIME Typ gif für alle gegebenen Dateien
- $upload->addValidator('ExcludeMimeType', 'image/gif');
- // Verweigert den MIME Typ gif und jpeg für alle gegebenen Dateien
- $upload->setValidator('ExcludeMimeType', array('image/gif',
- 'image/jpeg');
- // Verweigert die MIME Typ Gruppe image für alle Dateien
- $upload->setValidator('ExcludeMimeType', 'image');
- ]]></programlisting>
- </example>
- <para>
- Das obige Beispiel zeigt das es auch möglich ist Gruppen von MIME Typen zu verweigern.
- Um, zum Beispiel, alle Bilder zu verweigern, muß nur 'image' als MIME Typ verwendet werden.
- Das kann für alle Gruppen von MIME Typen wie 'image', 'audio', 'video', 'test', und so weiter
- verwendet werden.
- </para>
- <note>
- <para>
- Es ist zu beachten das bei Verwendung von MIME Typ-Gruppen alle Mitglieder dieser Gruppe
- verweigert werden, selbst wenn das nicht gewünscht ist. Wenn man 'image' verweigert,
- werden alle Typen von Bildern verweigert wie 'image/jpeg' oder 'image/vasa'. Wenn man
- nicht sicher ist ob man alle Typen verweigern will sollte man nur
- definierte MIME Typen zu verweigern statt der kompletten Gruppe.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.exists">
- <title>Exists Prüfung</title>
- <para>
- Die <code>Exists</code> Prüfung checkt ob Dateien die spezifiziert werden existieren. Sie unterstützt
- die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array um zu prüfen
- ob die spezifizierte Datei im gegebenen Verzeichnis existiert.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Diese Prüfung akzeptiert mehrere Verzeichnisse, entweder als Komma-getrennter String, oder als
- Array. Es können aber auch die Methoden <code>setDirectory()</code>, <code>addDirectory()</code>,
- und <code>getDirectory()</code> verwendet werden um die Verzeichnisse zu setzen und zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.exists.example">
- <title>Die Exists Prüfung verwenden</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Das temporäre Verzeichnis für die Prüfung hinzufügen
- $upload->addValidator('Exists', false, '\temp');
- // Zwei Verzeichnisse hinzufügen indem die Array Schreibweise verwendet wird
- $upload->addValidator('Exists',
- false,
- array('\home\images', '\home\uploads'));
- ]]></programlisting>
- </example>
- <note>
- <para>
- Beachte das diese Prüfung checkt ob die spezifizierte Datei in allen angegebenen Verzeichnissen
- existiert. Die Prüfung schlägt fehl, wenn die Datei in irgendeinem der angegebenen
- Verzeichnisse nicht existiert.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.extension">
- <title>Extension Prüfung</title>
- <para>
- Die <code>Extension</code> Prüfung checkt die Dateierweiterung der angegebenen Dateien.
- Sie unterstützt die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array um zu prüfen
- ob die angegebene Datei diese Dateierweiterung verwendet.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>case</code>: Definiert of die Prüfung auf die Klein/Großschreibung achten soll.
- Standardmäßig ist die Klein/Großschreibung egal. Es ist zu beachten das dieser Schlüssel
- für alle verwendeten Erweiterungen angegeben wird.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Dieser Prüfer akzeptiert mehrere Erweiterungen entweder als komma-getrennten String, oder als
- ein Array. Man kann auch die <code>setExtension()</code>, <code>addExtension()</code> und
- <code>getExtension()</code> Methoden verwenden um Erweiterungs Werte zu setzen und zu erhalten.
- </para>
- <para>
- In einigen Fällen ist es nützlich auch auf Klein/Großschreibung zu testen. Hierfür nimmt
- der Constructor einen zweiten Parameter <code>$case</code> der, wenn er auf true gesetzt
- wird, die Erweiterungen abhängig von der Klein/Großschreibung prüft.
- </para>
- <example id="zend.file.transfer.validators.extension.example">
- <title>Verwendung der Extension Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Limitiert die Erweiterungen auf jpg und png Dateien
- $upload->addValidator('Extension', false, 'jpg,png');
- // Limitiert die Erweiterungen auf jpg und png Dateien,
- // verwendet aber die Array Schreibweise
- $upload->addValidator('Extension', false, array('jpg', 'png'));
- // Abhängig von der Klein/Großschreibung prüfen
- $upload->addValidator('Extension', false, array('mo', 'png', 'case' => true));
- if (!$upload->isValid('C:\temp\myfile.MO')) {
- print 'Nicht gültig da MO und mo Kleinschreibungsmäßig nicht passen';
- }
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten das diese Prüfung nur die Dateierweiterung prüft. Sie prüft nicht
- den MIME Typ der Datei.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.filessize">
- <title>FilesSize Prüfung</title>
- <para>
- Die <code>FilesSize</code> Prüfung checkt die komplette Größe aller übertragenen Dateien.
- Sie unterstützt die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>min</code>: Setzt die minimale gemeinsame Dateigröße. Diese Option definiert
- die mindeste gemeinsame Größe die übertragen werden soll.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>max</code>: Setzt die maximale gemeinsame Dateigröße.
- </para>
- <para>
- Diese Option begrenzt die gemeinsame Dateigröße aller Dateien die übertragen werden,
- aber nicht die Dateigröße von einzelnen Dateien.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>bytestring</code>: Definiert ob im Fehlerfall eine Benutzerfreundliche Nummer, oder
- die reine Dateigröße zurückgegeben wird.
- </para>
- <para>
- Diese Option definiert ob der Benutzer '10864' oder '10MB' sieht. Der
- Standardwert ist true weshalb '10MB' zurückgegeben wird wenn nicht anders angegeben.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Diese Prüfung kann auch mit einem String initiiert werden, der dann verwendet wird um die
- <code>max</code> Option zu setzen. Man kann auch die Methoden <code>setMin()</code> und
- <code>setMax()</code> verwenden um beide Optionen nach den Contrucor zu setzen, zusammen mit
- <code>getMin()</code> und <code>getMax()</code> um die Werte zu erhalten die vorher gesetzt wurden.
- </para>
- <para>
- Die Größe selbst wird auch in der SI Schreibweise akzeptiert wie Sie die meisten
- Betriebsystemen verwenden. Statt <emphasis role="strong">20000 bytes</emphasis> kann auch
- <emphasis role="strong">20kB</emphasis> angeben werden. Alle Einheiten werden mit dem Basiswert
- 1024 konvertiert. Die folgenden Einheiten werden akzeptiert: <code>kB</code>, <code>MB</code>,
- <code>GB</code>, <code>TB</code>, <code>PB</code> und <code>EB</code>. Beachte das 1kB gleich
- 1024 Bytes ist, 1MB gleich 1024kB, und so weiter.
- </para>
- <example id="zend.file.transfer.validators.filessize.example">
- <title>Verwenden der FilesSize Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Limitiert die Größe aller Dateien die hochgeladen werden auf 40000 Bytes
- $upload->addValidator('FilesSize', false, 40000);
- // Limitiert die Größe aller Dateien die hochgeladen
- // werden auf maximal 4MB und minimal 10kB
- $upload->addValidator('FilesSize',
- false,
- array('min' => '10kB', 'max' => '4MB'));
- // Wie zuvor, gibt aber die reine Dateigröße
- // statt einem benutzerfreundlichen String zurück
- $upload->addValidator('FilesSize',
- false,
- array('min' => '10kB',
- 'max' => '4MB',
- 'bytestring' => false));
- ]]></programlisting>
- </example>
- <note>
- <para>
- Beachte das diese Prüfung intern die Dateigrößen der geprüften Dateien intern
- speichert. Die Datei welche die Größe überschreitet wird als Fehler zurückgegeben.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.imagesize">
- <title>ImageSize Prüfung</title>
- <para>
- Die <code>ImageSize</code> Prüfung checkt die Größe von Bildern. Sie unterstützt die folgenden
- Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>minheight</code>: Setzt die mindeste Höhe des Bildes.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>maxheight</code>: Settzt die maximale Höhe des Bildes.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>minwidth</code>: Setzt die mindeste Breite des Bildes.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>maxwidth</code>: Setzt die maximale Breite des Bildes.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Methoden <code>setImageMin()</code> und <code>setImageMax()</code> setzen auch
- beide Minimal- und Maximalwerte im Nachhinein, wärend die <code>getMin()</code> und
- <code>getMax()</code> Methoden die aktuell gesetzten Werte zurückgeben.
- </para>
- <para>
- Der Bequemlichkeit halber gibt es auch eine <code>setImageWidth</code> und <code>setImageHeight</code>
- Methode welche die Mindest- und Maximalhöhe und -Breite der Bilddatei setzen. Sie haben auch
- passende <code>getImageWidth</code> und <code>getImageHeight</code> Methoden um die aktuell
- gesetzten Werte zu erhalten.
- </para>
- <para>
- Um die Prüfung einer betreffenden Dimension zu gestatten, muß die relevante Option einfach
- nicht gesetzt werden.
- </para>
- <example id="zend.file.transfer.validators.imagesize.example">
- <title>Verwendung der ImageSize Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Begrenzt die Größe eines Bildes auf eine Höhe von 100-200
- // und eine Breite von 40-80 Pixel
- $upload->addValidator('ImageSize', false,
- array('minwidth' => 40,
- 'maxwidth' => 80,
- 'minheight' => 100,
- 'maxheight' => 200
- );
- // Resetiert die Breite der Prüfung
- $upload->setImageWidth(array('minwidth' => 20, 'maxwidth' => 200));
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.file.transfer.validators.iscompressed">
- <title>IsCompressed Prüfung</title>
- <para>
- Die <code>IsCompressed</code> Prüfung checkt ob eine übertragene Datei komprimiert ist wie zum
- Beispiel Zip oder Arc. Diese Prüfung basiert auf der <code>MimeType</code> Prüfung und unterstützt
- die gleichen Methoden und Optionen. Diese Prüfung kann mit den dort beschriebenen Methoden auf
- gewünschte Komprimierungstypen limitiert werden.
- </para>
- <example id="zend.file.transfer.validators.iscompressed.example">
- <title>Verwenden der IsCompressed Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Checkt ob die hochgeladene Datei komprimiert ist
- $upload->addValidator('IsCompressed', false);
- // Limitiert diese Prüfung auf Zip Dateien
- $upload->addValidator('IsCompressed', false, array('application/zip'));
- // Limitiert diese Prüfung auf Zip Dateien,
- // und verwendet eine einfachere Schreibweise
- $upload->addValidator('IsCompressed', false, 'zip');
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten das nicht geprüft wird ob ein gesetzter MIME Typ ein Komprimierungstyp ist
- oder nicht. Man könnte zum Beispiel definieren das Gif Dateien von dieser Prüfung akzeptiert
- werden. Die Verwendung der 'MimeType' Prüfung für Dateien welche nicht archiviert sind,
- führt zu besser lesbarem Code.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.isimage">
- <title>IsImage Prüfung</title>
- <para>
- Die <code>IsImage</code> Prüfung checkt ob eine übertragene Datei eine Bilddatei ist, wie zum
- Beispiel Gif oder Jpeg. Diese Prüfung basiert auf der <code>MimeType</code> Prüfung und unterstützt
- die gleichen Methoden und Optionen. Diese Prüfung kann mit den dort beschriebenen Methoden auf
- gewünschte Bildarten limitiert werden.
- </para>
- <example id="zend.file.transfer.validators.isimage.example">
- <title>Verwenden der IsImage Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Checkt ob die hochgeladene Datei ein Bild ist
- $upload->addValidator('IsImage', false);
- // Limitiert diese Prüfung auf Gif Dateien
- $upload->addValidator('IsImage', false, array('application/gif'));
- // Limitiert diese Prüfung auf Jpeg Dateien,
- // verwendet eine einfachere Schreibweise
- $upload->addValidator('IsImage', false, 'jpeg');
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten das nicht geprüft wird ob ein gesetzter MIME Typ kein Bild ist.
- Es ist zum Beispiel möglich, Zip Dateien von dieser Prüfung akzeptieren zu lassen.
- Die Verwendung der 'MimeType' Prüfung für Dateien welche keine Bilder sind, führt zu
- besser lesbarem Code.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.hash">
- <title>Hash Prüfung</title>
- <para>
- Die <code>Hash</code> Prüfung checkt den Inhalt einer übertragenen Datei indem Sie gehasht wird.
- Diese Prüfung verwendet die Hash Erweiterung von PHP. Sie unterstützt die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Nimmt einen beliebigen Schlüssel oder ein nummerisches Array.
- Setzt den Hash gegen den geprüft werden soll.
- </para>
- <para>
- Man kann mehrere Hashes setzen indem Sie als Array angegeben werden. Jede Datei wird
- geprüft, und die Prüfung wird nur fehlschlagen wenn alle Dateien die Prüfung nicht
- bestehen.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>algorithm</code>: Setzt den Algorithmus der für das Hashen des Inhalts verwendet
- wird.
- </para>
- <para>
- Man kann mehrere Algorithmen setzen indem die <code>addHash()</code> Methode mehrere
- Male aufgerufen wird.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.file.transfer.validators.hash.example">
- <title>Verwenden der Hash Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Prüft ob der Inhalt der hochgeladenen Datei den angegebenen Hash enthält
- $upload->addValidator('Hash', false, '3b3652f');
- // Begrenzt diese Prüfung auf zwei unterschiedliche Hashes
- $upload->addValidator('Hash', false, array('3b3652f', 'e612b69'));
- // Setzt einen anderen Algorithmus gegen den geprüft wird
- $upload->addValidator('Hash',
- false,
- array('315b3cd8273d44912a7',
- 'algorithm' => 'md5'));
- ]]></programlisting>
- </example>
- <note>
- <para>
- Diese Prüfung unterstützt über 34 verschiedene Hash Algorithmen. Die bekanntesten sind
- 'crc32', 'md5' und 'sha1'. Eine gesammelte Liste aller unterstützten Hash Algorithmen kann in
- PHP's <ulink url="http://php.net/hash_algos">hash_algos Methode</ulink> auf der
- <ulink url="http://php.net">php.net Seite</ulink> gefunden werden.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.md5">
- <title>Md5 Prüfung</title>
- <para>
- Die <code>Md5</code> Prüfung checkt den Inhalt einer übertragenen Datei durch hashen. Diese
- Prüfung verwendet die Hash Erweiterung von PHP mit dem Md5 Algorithmus. Sie unterstützt die
- folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: nimmt einen beliebigen Schlüssel oder ein nummerisches Array.
- </para>
- <para>
- Man kann mehrere Hashes setzen indem Sie als Array übergeben werden. Jede Datei wird
- geprüft und die Prüfung schlägt nur dann fehl wenn die Prüfung alle Dateien fehlschlägt.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.file.transfer.validators.md5.example">
- <title>Verwenden der Md5 Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Prüft ob der Inhalt der hochgeladenen Datei den angegebenen Hash hat
- $upload->addValidator('Md5', false, '3b3652f336522365223');
- // Begrenzt diese Prüfung auf zwei unterschiedliche Hashes
- $upload->addValidator('Md5',
- false,
- array('3b3652f336522365223',
- 'eb3365f3365ddc65365'));
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.file.transfer.validators.mimetype">
- <title>MimeType Prüfung</title>
- <para>
- Die <code>MimeType</code> Prüfung checkt den Mimetyp von übertragenen Dateien. Sie unterstützt
- die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array.
- Setzt die Art des MIME Typs der geprüft werden soll.
- </para>
- <para>
- Definiert den MIME Typ von Dateien die akzeptiert werden soll.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>magicfile</code>: Das Magicfile das verwendet werden soll.
- </para>
- <para>
- Mit dieser Option kann definiert werden welches Magicfile zu verwenden ist. Wenn es nicht
- gesetzt wird, oder leer ist, wird stattdessen die MAGIC Konstante verwendet. Diese
- Option ist seit dem Zend Framework 1.7.1 vorhanden.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Diese Prüfung akzeptiert viele MIME Typen entweder als Komma-getrennter String, oder als
- Array. Man kan auch die Methoden <code>setMimeType()</code>, <code>addMimeType()</code>,
- und <code>getMimeType()</code> verwenden um MIME Typen zu setzen und zu erhalten.
- </para>
- <para>
- Man kann mit der 'magicfile' Option auch die Magicdatei setzen die von Fileinfo verwendet
- werden soll. Zusätzlich gibt es die komfortablen <code>setMagicFile()</code> und
- <code>getMagicFile()</code> Methoden die das spätere Setzen und Empfangen des Magicfile
- Parameters erlauben. Diese Methoden sind seit dem Zend Framework 1.7.1 vorhanden.
- </para>
- <example id="zend.file.transfer.validators.mimetype.example">
- <title>Verwendung der MimeType Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Begrenzt den MIME Typ aller gegebenen Dateien auf Gif Bilder
- $upload->addValidator('MimeType', 'image/gif');
- // Begrenzt den MIME Typ alle gegebenen Dateien auf Gif und Jpeg Dateien
- $upload->addValidator('MimeType', array('image/gif', 'image/jpeg');
- // Begrenzt den MIME Typ aller Dateien auf die Gruppe image
- $upload->addValidator('MimeType', 'image');
- // Ein anderes magicfile verwenden
- $upload->addValidator('MimeType',
- false,
- array('image',
- 'magicfile' => '/path/to/magicfile.mgx'));
- ]]></programlisting>
- </example>
- <para>
- Das obige Beispiel zeigt das es auch möglich ist den akzeptierten MIME Typ auf eine Gruppe von
- MIME Typen zu begrenzen. Um alle Bilder zu erlauben kann einfach 'image' als MIME Typ verwendet
- werden. Das kann für alle Gruppen von MIME Typen wie 'image', 'audio', 'video', 'test', und so
- weiter gemacht werden.
- </para>
- <note>
- <para>
- Es ist zu beachten das die Verwendung von MIME Typ-Gruppen alle Mitglieder dieser Gruppe
- akzeptiert, selbst wenn die Anwendung diese nicht unterstützt. Wenn man 'image' erlaubt,
- erhält man auch 'image/xpixmap' oder 'image/vasa' was problematisch sein könnte. Wenn man
- nicht sicher ist ob die eigene Anwendung alle Typen unterstützt ist es besser nur
- definierte MIME Typen zu erlauben statt der kompletten Gruppe.
- </para>
- </note>
- <note>
- <para>
- Diese Komponente verwendet die <code>fileinfo</code> Erweiterung wenn Sie vorhanden ist.
- Wenn nicht wird Sie die <code>mime_content_type</code> Funktion verwenden. Und wenn dieser
- Funktionsaufruf fehlschlägt wird der MIME Typ verwendet der von HTTP angegeben wurde.
- </para>
- <para>
- Man sollte sich vor möglichen Sicherheitsproblemen vorsehen wenn weder <code>fileinfo</code>
- noch <code>mime_content_type</code> vorhanden sind. Der von HTTP angegebene MIME Typ ist nicht
- sicher und kann einfach manipuliert werden.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.notexists">
- <title>NotExists Prüfung</title>
- <para>
- Die <code>NotExists</code> Prüfung checkt ob Dateien die angegeben werden existieren. Sie unterstützt
- die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Setzt einen beliebigen Schlüssel oder ein nummerisches Array.
- Checkt ob die Datei im gegebenen Verzeichnis existiert.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Diese Prüfung akzeptiert mehrere Verzeichnisse, entweder als Komma-getrennter String, oder als
- Array. Es können aber auch die Methoden <code>setDirectory()</code>, <code>addDirectory()</code>,
- und <code>getDirectory()</code> verwendet werden um die Verzeichnisse zu setzen und zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.notexists.example">
- <title>Verwendung der NotExists Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Das temporäre Verzeichnis für die Prüfung hinzufügen
- $upload->addValidator('NotExists', '\temp');
- // Zwei Verzeichnisse durch Verwendung der Array Schreibweise hinzufügen
- $upload->addValidator('NotExists',
- array('\home\images',
- '\home\uploads')
- );
- ]]></programlisting>
- </example>
- <note>
- <para>
- Beachte das diese Prüfung checkt ob die Datei in allen angegebenen Verzeichnissen nicht
- existiert. Die Prüfung schlägt fehl, wenn die Datei in irgendeinem der angegebenen Verzeichnisse
- existiert.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.file.transfer.validators.sha1">
- <title>Sha1 Prüfung</title>
- <para>
- Die <code>Sha1</code> Prüfung checkt den Inhalt einer übertragenen Datei durch hashen. Diese
- Prüfung verwendet die Hash Erweiterung von PHP mit dem Sha1 Algorithmus. Sie unterstützt die
- folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>*</code>: Nimmt einen beliebigen Schlüssel oder ein nummerisches Array.
- </para>
- <para>
- Man kann mehrere Hashes setzen indem Sie als Array übergeben werden. Jeder Datei wird
- geprüft und die Prüfung schlägt nur dann fehl wenn alle Dateien fehlschlagen.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.file.transfer.validators.sha1.example">
- <title>Verwenden der Sha1 Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Prüft ob der Inhalt der hochgeladenen Datei den angegebenen Hash hat
- $upload->addValidator('Sha1', false, '3b3652f336522365223');
- // Begrenzt diese Prüfung auf zwei unterschiedliche Hashes
- $upload->addValidator('Sha1',
- false, array('3b3652f336522365223',
- 'eb3365f3365ddc65365'));
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.file.transfer.validators.size">
- <title>Size Prüfung</title>
- <para>
- Die <code>Size</code> Prüfung checkt die Größe von einzelnen Dateien. Sie unterstützt die
- folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>min</code>: Setzt die minimale Dateigröße.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>max</code>: Setzt die maximale Dateigröße.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>bytestring</code>: Definiert ob ein Fehler mit einer Benutzerfreundlichen Nummer
- zurückgegeben wird, oder mit der reinen Dateigröße.
- </para>
- <para>
- Mit dieser Option kann definiert werden ob der Benutzer '10864' oder '10MB' erhält.
- Der Standardwert ist true was '10MB' zurückgibt.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Man kann diese Prüfung auch nur mit einem String initialisieren, der dann verwendet wird um die
- <code>max</code> Option zu setzen. Man kann auch die Methoden <code>setMin()</code> und
- <code>setMax()</code> verwenden um beide Optionen nach der Instanziierung setzen, zusammen mit
- <code>getMin()</code> und <code>getMax()</code> um die Werte zu setzen die vorher gesetzt wurden.
- </para>
- <para>
- Die Größe selbst wird auch in der SI Schreibweise akzeptiert wie Sie von den meisten
- Betriebsystemen verwendet wird. Statt <emphasis role="strong">20000 bytes</emphasis> kann man auch
- <emphasis role="strong">20kB</emphasis> angeben. Alle Einheiten werden konvertiert wobei 1024 als
- Basiswert verwendet wird. Die folgenden Einheiten werden akzeptiert: <code>kB</code>, <code>MB</code>,
- <code>GB</code>, <code>TB</code>, <code>PB</code> und <code>EB</code>. Beachte das 1kB identisch
- mit 1024 Bytes ist, 1MB identisch mit 1024kB ist, und so weiter.
- </para>
- <example id="zend.file.transfer.validators.size.example">
- <title>Verwendung der Size Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Limitiert die Größe einer Datei auf 40000 Bytes
- $upload->addValidator('Size', false, 40000);
- // Limitiert die Größe der angegebenen Datei auf maximal 4MB und minimal 10kB
- // Gibt auch im Fall eines Fehlers die reine Zahl statt einer
- // Benutzerfreundlichen zurück
- $upload->addValidator('Size',
- false,
- array('min' => '10kB',
- 'max' => '4MB',
- 'bytestring' => false));
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.file.transfer.validators.wordcount">
- <title>WordCount Prüfung</title>
- <para>
- Die <code>WordCount</code> Prüfung checkt die Anzahl von Wörtern in angegebenen Dateien. Sie
- Unterstützt die folgenden Optionen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>min</code>: Setzt die mindeste Anzahl an Wörtern die gefunden werden soll.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>max</code>: Setzt die maximale Anzahl an Wörtern die gefunden werden soll.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Wenn man diese Prüfung mit einem String oder Integer initiiert, wird der Wert als
- <code>max</code> verwendet. Oder man verwendet die <code>setMin()</code> und <code>setMax()</code>
- Methoden um beide Optionen im Nachhinein zu setzen und <code>getMin()</code> sowie
- <code>getMax()</code> um die aktuell gesetzten Werte zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.wordcount.example">
- <title>Verwendung der WordCount Prüfung</title>
- <programlisting role="php"><![CDATA[
- $upload = new Zend_File_Transfer();
- // Begrenzt die Anzahl der Wörter in Dateien auf maximal 2000
- $upload->addValidator('WordCount', false, 2000);
- // Begrenzt die Anzahl der Wörter in Dateien auf maximal 5000
- // und mindestens 1000 Wörter
- $upload->addValidator('WordCount', false, array('min' => 1000, 'max' => 5000));
- ]]></programlisting>
- </example>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 tw=80 et:
- -->
|