PHP-Datei-Upload: Dateitypen und -größe effizient einschränken
In PHP ist die Kontrolle von Datei-Uploads und die Sicherstellung der Akzeptanz bestimmter Dateitypen von entscheidender Bedeutung . Ein Benutzer hatte kürzlich Probleme mit seinem vorhandenen Validierungscode:
<code class="php">//check file extension and size $resume= ($_FILES['resume']['name']); $reference= ($_FILES['reference']['name']); $ext = strrchr($resume, "."); $ext1 = strrchr($reference, "."); if (!(($_FILES["resume"]["type"] == "application/doc") || ($_FILES["resume"]["type"] == "application/docx") || ($_FILES["resume"]["type"] == "application/pdf" )) && (($_FILES["reference"]["type"] == "application/doc") || ($_FILES["reference"]["type"] == "application/docx") || ($_FILES["reference"]["type"] == "application/pdf")) && (($ext == ".pdf") || ($ext == ".doc") || ($ext == ".docx")) && (($ext1 == ".pdf") || ($ext1 == ".doc") || ($ext1 == ".docx")) && ($_FILES["resume"]["size"] < 400000) //accept upto 500 kb && ($_FILES["reference"]["size"] < 400000)) { //stop user } else { // allow files to upload }</code>
Nach Angaben des Benutzers ließ dieser Code nicht autorisierte Dateitypen (z. B. TXT) passieren und setzte die Größenbeschränkung nicht durch.
Lösung: Sich auf MIME-Typen und ordnungsgemäße Größenprüfungen verlassen
Um diese Probleme anzugehen, wird ein robusterer Ansatz empfohlen:
<code class="php">function allowed_file(){ //Allowed mime-type files $allowed = array('application/doc', 'application/pdf', 'another/type'); //Validate uploaded file type if(in_array($_FILES['resume']['type'], $allowed) AND in_array($_FILES['reference']['type'], $allowed)){ //Check file size if($_FILES["resume"]["size"] < 400000 AND $_FILES["reference"]["size"] < 400000 ){ //File types and size are accepted, proceed with file processing } } }</code>
Erklärung :
Dieser verbesserte Code verwendet MIME-Typen (Multipurpose Internet Mail Extension) anstelle von Dateierweiterungen. MIME-Typen stellen Dateiformate genau dar und sind weniger anfällig für Manipulationen. Darüber hinaus prüft es unabhängig voneinander die Dateigröße für Lebenslauf- und Referenzdateien und stellt so sicher, dass das Limit eingehalten wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateitypen und -größe beim Hochladen von PHP-Dateien einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!