Aktueller Standort: Startseite> Neueste Artikel> Wie kombinieren Sie die Funktion move_uPloaded_file, um ein einfaches und praktisches Dateiverwaltungssystem zu implementieren? Schritte detaillierte Erläuterung

Wie kombinieren Sie die Funktion move_uPloaded_file, um ein einfaches und praktisches Dateiverwaltungssystem zu implementieren? Schritte detaillierte Erläuterung

gitbox 2025-06-22

In PHP ist das Datei -Upload eine sehr häufige Anforderung. Über die Funktion MOVE_UPADED_FILE () können wir die hochgeladenen Dateien sicher aus dem temporären Ordner in das angegebene Zielverzeichnis verschieben, wodurch die Dateiverwaltung realisiert wird. In diesem Artikel wird vorgestellt, wie Sie die Funktion move_uPloaded_file () kombinieren, um ein einfaches und praktisches Dateiverwaltungssystem zu erstellen.

1. Verstehen Sie die Funktion move_Uploaded_file

MOVE_UPADED_FILE () ist eine integrierte Funktion in PHP, um hochgeladene Dateien von temporären Verzeichnissen auf Zielverzeichnisse zu verschieben. Die Syntax ist wie folgt:

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">move_uploaded_file</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$destination</span></span><span> )
</span></span>
  • $ Dateiname : Zeigt den temporären Dateipfad zur zu verschiebenden Upload -Datei an.

  • $ destination : repräsentiert den Zielpfad zur endgültigen gespeicherten Datei.

Diese Funktion kann nur erfolgreich ausgeführt werden, wenn die Datei über HTTP -Post hochgeladen wird und die temporäre Datei vorliegt. Wenn die hochgeladene Datei illegal ist oder der Zielpfad unkrodbar ist, gibt die Funktion falsch zurück.

2. Funktion grundlegender Dateien -Upload -Funktion

Zunächst müssen wir ein einfaches HTML -Formular erstellen, durch das Benutzer Dateien hochladen können. Der Beispielcode lautet wie folgt:

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">form</span></span></span><span> </span><span><span class="hljs-attr">action</span></span><span>=</span><span><span class="hljs-string">"upload.php"</span></span><span> </span><span><span class="hljs-attr">method</span></span><span>=</span><span><span class="hljs-string">"post"</span></span><span> </span><span><span class="hljs-attr">enctype</span></span><span>=</span><span><span class="hljs-string">"multipart/form-data"</span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">label</span></span></span><span> </span><span><span class="hljs-attr">for</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span>&gt;Wählen Sie Datei hochladen:</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">label</span></span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">input</span></span></span><span> </span><span><span class="hljs-attr">type</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span> </span><span><span class="hljs-attr">name</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span> </span><span><span class="hljs-attr">id</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">input</span></span></span><span> </span><span><span class="hljs-attr">type</span></span><span>=</span><span><span class="hljs-string">"submit"</span></span><span> </span><span><span class="hljs-attr">value</span></span><span>=</span><span><span class="hljs-string">"Datei hochladen"</span></span><span>&gt;
</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">form</span></span></span><span>&gt;
</span></span>

In diesem Formular gibt EnCTTEPE = "Multipart/Form-Data" den Datentyp des Formulars an, sodass die Datei korrekt hochgeladen werden kann. Typ = "Datei" im Eingabetag wird verwendet, um den Benutzer eine Datei auszuwählen.

3. Prozessdatei -Upload

Im Verarbeitungsskript für Datei -Uploads (z. B. Upload.php ) verwenden wir move_uploaded_file () , um die Datei von einem temporären Speicherort in den angegebenen Zielordner zu verschieben.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Verzeichnis hochladen</span></span><span>
</span><span><span class="hljs-variable">$uploadDir</span></span><span> = </span><span><span class="hljs-string">'uploads/'</span></span><span>;

</span><span><span class="hljs-comment">// Überprüfen Sie, ob der Zielordner existiert,Erstellen, wenn es nicht existiert</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-variable">$uploadDir</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">mkdir</span></span><span>(</span><span><span class="hljs-variable">$uploadDir</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
}

</span><span><span class="hljs-comment">// Überprüfen Sie, ob Dateien hochgeladen werden</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>]) &amp;&amp; </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'error'</span></span><span>] == </span><span><span class="hljs-number">0</span></span><span>) {
    </span><span><span class="hljs-comment">// 获取Datei hochladen的信息</span></span><span>
    </span><span><span class="hljs-variable">$fileName</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'name'</span></span><span>];  </span><span><span class="hljs-comment">// Dateiname</span></span><span>
    </span><span><span class="hljs-variable">$fileTmpName</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'tmp_name'</span></span><span>];  </span><span><span class="hljs-comment">// Temporärer Dateipfad</span></span><span>
    </span><span><span class="hljs-variable">$fileSize</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'size'</span></span><span>];  </span><span><span class="hljs-comment">// Dateigröße</span></span><span>
    </span><span><span class="hljs-variable">$fileType</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'type'</span></span><span>];  </span><span><span class="hljs-comment">// Dateityp</span></span><span>

    </span><span><span class="hljs-comment">// Legen Sie den Zieldateipfad ein</span></span><span>
    </span><span><span class="hljs-variable">$destination</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-title function_ invoke__">basename</span></span><span>(</span><span><span class="hljs-variable">$fileName</span></span><span>);

    </span><span><span class="hljs-comment">// 检查Dateigröße(Beispielsweise ist die maximale Dateigrenze 5MB)</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$fileSize</span></span><span> &gt; </span><span><span class="hljs-number">5</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Zu große Datei,Maximal zulässige 5MB。"</span></span><span>;
        </span><span><span class="hljs-keyword">exit</span></span><span>;
    }

    </span><span><span class="hljs-comment">// Verschieben Sie Dateien in das Zielverzeichnis</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">move_uploaded_file</span></span><span>(</span><span><span class="hljs-variable">$fileTmpName</span></span><span>, </span><span><span class="hljs-variable">$destination</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei hochladen erfolgreich!Dateiname:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$fileName</span></span><span>);
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei -Upload fehlgeschlagen!"</span></span><span>;
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Kein Datei -Upload oder Datei -Upload -Fehler!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Im obigen Code prüfen wir zunächst, ob Dateien -Uploads vorhanden sind, und überprüfen, ob beim Upload -Prozess Fehler vorliegen. Anschließend erhalten wir den temporären Pfad und den Dateinamen der Datei und geben den Zielordner ( Uploads/ ) als endgültige Speicherort der Datei an. Wenn der Zielordner nicht vorhanden ist, erstellt das Skript automatisch den Ordner.

Als nächstes verwenden wir die Funktion move_uploaded_file () , um die Datei vom temporären Pfad in den Zielordner zu verschieben. Wenn der Umzug erfolgreich ist, gibt das Skript eine Erfolgsnachricht aus.

4. Verbesserte Dateiverwaltungsfunktionen

Über der Funktion "Basis -Datei -Upload" können wir die Funktionen des Dateiverwaltungssystems weiter verbessern und die folgenden allgemeinen Vorgänge bereitstellen:

1. LISTE hochgeladene Dateien

Sie können alle hochgeladenen Dateien auflisten, indem Sie die Dateiliste im Zielverzeichnis lesen:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_diff</span></span><span>(</span><span><span class="hljs-title function_ invoke__">scandir</span></span><span>(</span><span><span class="hljs-variable">$uploadDir</span></span><span>), </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">'..'</span></span><span>, </span><span><span class="hljs-string">'.'</span></span><span>));

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;ul&gt;"</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;li&gt;&lt;a href='<span class="hljs-subst">{$uploadDir}</span></span></span><span><span class="hljs-subst">{$file}</span></span><span>'&gt;</span><span><span class="hljs-subst">{$file}</span></span><span>&lt;/a&gt;&lt;/li&gt;";
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;/ul&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dieser Code verwendet die Funktion Scandir (), um alle Dateien im Verzeichnis zu erhalten und herauszufiltern . und .. und dann den Dateinamen als Hyperlink an.

2. Löschen Sie die Datei

Wir können auch die Funktion des Löschens von Dateien bereitstellen. Durch Klicken auf den Link löschen kann der Benutzer die angegebene Datei löschen:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'delete'</span></span><span>])) {
    </span><span><span class="hljs-variable">$fileToDelete</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'delete'</span></span><span>];
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$fileToDelete</span></span><span>)) {
        </span><span><span class="hljs-title function_ invoke__">unlink</span></span><span>(</span><span><span class="hljs-variable">$fileToDelete</span></span><span>);
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei gelöscht: "</span></span><span> . </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'delete'</span></span><span>];
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Datei existiert nicht!"</span></span><span>;
    }
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In der Dateiliste stellen wir für jede Datei einen LELETE -Link bereit, und die Löschung wird nach dem Klicken ausgelöst. Die Funktion Unlink () wird zum Löschen von Dateien verwendet.

3.. Datei umbenennen

Die Umbenennung der Datei ist auch ein gängiger Betrieb in Dateiverwaltungssystemen. Wir können eine Umbenennungsfunktion für Dateien bereitstellen:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'rename'</span></span><span>]) &amp;&amp; </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'new_name'</span></span><span>])) {
    </span><span><span class="hljs-variable">$oldFile</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'rename'</span></span><span>];
    </span><span><span class="hljs-variable">$newFile</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'new_name'</span></span><span>];

    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">rename</span></span><span>(</span><span><span class="hljs-variable">$oldFile</span></span><span>, </span><span><span class="hljs-variable">$newFile</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Datei erfolgreich umbenennen!"</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Umbenennen ist fehlgeschlagen!"</span></span><span>;
    }
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Durch das Senden eines Formulars kann der Benutzer einen neuen Dateinamen für die Datei angeben. Die Funktion umbename () umbename () ändert die Datei aus dem alten Namen in den neuen Namen.

5. Zusammenfassung

Durch Kombination der Funktion move_uploaded_file () kann PHP ein einfaches und praktisches Dateiverwaltungssystem implementieren. Dieses System unterstützt nicht nur das Datei -Upload, sondern bietet auch gängige Vorgänge wie Dateiliste, Löschen und Umbenennen. Bei der Implementierung eines Dateiverwaltungssystems müssen wir sicherstellen, dass die Berechtigungen des Zielordners korrekt eingestellt werden und dass die Dateigröße, der Typ usw. angemessen überprüft werden, um die Sicherheit und Stabilität des Systems zu verbessern.

In den oben genannten Schritten können Sie schnell ein grundlegendes Upload- und Verwaltungssystem für Dateien erstellen und weitere Funktionen entsprechend Ihren Anforderungen erweitern.