| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17133 -->
- <!-- 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>
- <methodname>isValid($files = null)</methodname>: 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 <methodname>addValidators()</methodname> definiert
- ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>hasValidator($name)</methodname>: Zeigt ob eine Prüfung registriert
- wurde.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getValidator($name)</methodname>: Gibt eine vorher registrierte
- Prüfung zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getValidators($files = null)</methodname>: 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>
- <methodname>removeValidator($name)</methodname>: Entfernt eine vorher
- registrierte Prüfung.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>clearValidators()</methodname>: 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 language="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>
- <methodname>addValidator()</methodname>, <methodname>addValidators()</methodname>,
- und <methodname>setValidators()</methodname> 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 language="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 <methodname>addValidators()</methodname> 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 <methodname>addValidator()</methodname> 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 language="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
- <methodname>isValid()</methodname> verwendet wird.
- </para>
- <example id="zend.file.transfer.validators.usage.exampleisvalid">
- <title>Prüfen der Dateien</title>
- <para>
- <methodname>isValid()</methodname> 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 language="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 <methodname>isValid()</methodname> 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
- <methodname>getMessages()</methodname>, welche alle Prüfmeldungen als Array zurückgibt,
- <methodname>getErrors()</methodname> welche alle Fehlercodes zurückgibt, und
- <methodname>hasErrors()</methodname> 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
- <methodname>setMin()</methodname> und <methodname>setMax()</methodname> verwendet
- werden um beide Optionen im Nachhinein zu setzen und <methodname>getMin()</methodname>
- und <methodname>getMax()</methodname> um die aktuell gesetzten Werte zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.count.example">
- <title>Die Count Prüfung verwenden</title>
- <programlisting language="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 language="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 <methodname>setExtension()</methodname>,
- <methodname>addExtension()</methodname> und <methodname>getExtension()</methodname>
- 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 language="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 <methodname>setMimeType()</methodname>,
- <methodname>addMimeType()</methodname>, und <methodname>getMimeType()</methodname>
- 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 language="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
- <methodname>setDirectory()</methodname>, <methodname>addDirectory()</methodname>, und
- <methodname>getDirectory()</methodname> 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 language="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 <methodname>setExtension()</methodname>,
- <methodname>addExtension()</methodname> und <methodname>getExtension()</methodname>
- 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 language="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
- <methodname>setMin()</methodname> und <methodname>setMax()</methodname> verwenden um
- beide Optionen nach den Contrucor zu setzen, zusammen mit
- <methodname>getMin()</methodname> und <methodname>getMax()</methodname> 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>20000 bytes</emphasis> kann auch
- <emphasis>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 language="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 <methodname>setImageMin()</methodname> und
- <methodname>setImageMax()</methodname> setzen auch beide Minimal- und Maximalwerte im
- Nachhinein, wärend die <methodname>getMin()</methodname> und
- <methodname>getMax()</methodname> Methoden die aktuell gesetzten Werte zurückgeben.
- </para>
- <para>
- Der Bequemlichkeit halber gibt es auch eine <methodname>setImageWidth()</methodname>
- und <methodname>setImageHeight()</methodname> Methode welche die Mindest- und
- Maximalhöhe und -Breite der Bilddatei setzen. Sie haben auch passende
- <methodname>getImageWidth()</methodname> und <methodname>getImageHeight()</methodname>
- 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 language="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 language="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 language="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
- <methodname>addHash()</methodname> Methode mehrere Male aufgerufen wird.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.file.transfer.validators.hash.example">
- <title>Verwenden der Hash Prüfung</title>
- <programlisting language="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 language="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 <methodname>setMimeType()</methodname>,
- <methodname>addMimeType()</methodname>, und <methodname>getMimeType()</methodname>
- 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
- <methodname>setMagicFile()</methodname> und <methodname>getMagicFile()</methodname>
- 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 language="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
- <methodname>setDirectory()</methodname>, <methodname>addDirectory()</methodname>, und
- <methodname>getDirectory()</methodname> 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 language="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 language="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
- <methodname>setMin()</methodname> und <methodname>setMax()</methodname> verwenden um
- beide Optionen nach der Instanziierung setzen, zusammen mit
- <methodname>getMin()</methodname> und <methodname>getMax()</methodname> 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>20000 bytes</emphasis> kann man auch
- <emphasis>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 language="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 <methodname>setMin()</methodname>
- und <methodname>setMax()</methodname> Methoden um beide Optionen im Nachhinein zu
- Setzen und <methodname>getMin()</methodname> sowie <methodname>getMax()</methodname> um
- die aktuell gesetzten Werte zu erhalten.
- </para>
- <example id="zend.file.transfer.validators.wordcount.example">
- <title>Verwendung der WordCount Prüfung</title>
- <programlisting language="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:
- -->
|