Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung des Verarbeitungsfalls für das Hochladen von PHP-Dateien

Ausführliche Erläuterung des Verarbeitungsfalls für das Hochladen von PHP-Dateien

墨辰丷
墨辰丷Original
2018-05-31 17:25:271331Durchsuche

In diesem Artikel wird hauptsächlich die Verarbeitungsmethode für das Hochladen von PHP-Dateien vorgestellt und die beim Hochladen von PHP-Dateien auftretenden Probleme und zugehörigen Lösungen in Form von Beispielen analysiert.

Die Beispiele in In diesem Artikel wird die Verarbeitungsmethode für das Hochladen von PHP-Dateien beschrieben. Ich möchte es Ihnen als Referenz mitteilen:

Ich bin kürzlich auf etwas gestoßen, das mich schon lange beschäftigt. Ich möchte meine ersten Gedanken mitteilen

Der Upload-Mechanismus von PHP ist vollständig gekapselt und kann mit nur wenigen Codezeilen implementiert werden:

Laden Sie die Datei in ein temporäres Verzeichnis hoch –> das angegebene Verzeichnis

Dies ist der PHP-Upload-Prozess, oder Sie können zwischendurch eine Überprüfung durchführen. Stellen Sie beispielsweise fest, ob das Dokument per Upload übermittelt wird oder ob die Dateierweiterung von uns zugelassen wird

und führen Sie eine Reihe von Überprüfungen durch. Der einfache Code, den ich gegeben habe, kann als Ausgangspunkt angesehen werden.

$targetFolder = '/uploads'; // 定义根目录
if (!empty($_FILES)) {
  $tempFile = $_FILES['Filedata']['tmp_name'];
if(is_uploaded_file($tempFile))
{
  $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
  $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
  $fileTypes = array('jpg','jpeg','gif','png'); // 允许的后缀扩展
  $fileParts = pathinfo($_FILES['Filedata']['name']);
  if (in_array($fileParts['extension'],$fileTypes)) {
    move_uploaded_file($tempFile,$targetFile);
    echo '1';
  } else {
    echo '非法上传文档.';
  }
}else
{
  echo "非法上传文件";
}
}

Die obige Methode erfüllt grundsätzlich die Anforderungen für das Hochladen von Dateien. Aber das ist nicht das, was ich brauche.

Upload-Funktion

Anforderungen: Klicken Sie zuerst, um das Dokument hochzuladen, und wählen Sie dann die Upload-Datei aus. Nach dem Hochladen von JS wird ein Wert zurückgegeben Zeigt den aktuellen Zeitstempelnamen an. Die Datei befindet sich im Feld „Dokumentname“.

Klicken Sie dann auf „Senden“, um das Formular abzuschicken.

Der Server verarbeitet das übermittelte Formular und benennt die hochgeladene Datei um.

Das Problem tritt auch auf. Der Server ist IIS und es handelt sich um ein virtuelles Verzeichnis, das mithilfe von Mapping implementiert wird.

In diesem Fall befindet sich $_SERVER['DOCUMENT_ROOT'] nicht im Stammverzeichnis der PHP-Site

Obwohl die Upload-Funktion abgeschlossen ist, kann diese Datei nicht heruntergeladen werden. Aus Gründen der Serversicherheit habe ich weiterhin vor, die Datei auf der PHP-Site zu platzieren.

Dann geriet ich in eine Denkbeschränkung.

Denken Sie noch einmal darüber nach:

Warum ich den Upload-Mechanismus von PHP nicht noch einmal implementieren muss.

Legt PHP die Dateien nicht zuerst in das temporäre Verzeichnis? Warum gehe ich dann davon aus, dass das Verzeichnis nach erfolgreichem JS-Upload auch ein temporäres Verzeichnis ist,

und kopiere dann die Dateien, wenn ich das Formular erneut absende? Gehen Sie in das angegebene Verzeichnis, um die erforderliche Funktion abzuschließen.

PHP verfügt über eine Dateikopierfunktion Copy(); und arbeitet dann mit der Funktion rename() zusammen. Auf diese Weise kann die zweite Verschiebung und Umbenennung der hochgeladenen Datei abgeschlossen werden.

Hinweis: Wenn Sie eine Null-Byte-Datei unter der Fensterplattform kopieren, gibt copy() FALSE zurück, aber die Datei wird korrekt kopiert.

Dann bezieht sich PHP bei der Dateiverarbeitung aktiv auf den Dateiverarbeitungsmechanismus von Liunx. Die Dateioperationseffizienz von PHP hängt vom E/A-Schreiben und dem Betriebssystem ab.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

phpNach der Verbindung mit Apache fand der Test eine Lösung für verstümmelte Zeichen

PHPVerwenden Sie Cookies, um die Funktion zum Speichern von Benutzernamen und Passwörtern auf Webseiten zu realisieren

PHP verwendet Curl, um simulierte Anmelde- und Erfassungsdatenfunktionen zu implementieren Beispiele

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Verarbeitungsfalls für das Hochladen von PHP-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn