Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie den Speicherpfad von PHP-hochgeladenen Dateien

So ändern Sie den Speicherpfad von PHP-hochgeladenen Dateien

PHPz
PHPzOriginal
2023-04-04 10:41:181588Durchsuche

PHP wird als serverseitige Skriptsprache häufig in der Webentwicklung verwendet. Während des Entwicklungsprozesses von Webanwendungen ist es häufig erforderlich, einige Dateien wie Bilder, Dokumente usw. hochzuladen. PHP bietet eine praktische Datei-Upload-Funktion, die hochgeladenen Dateien werden jedoch standardmäßig im temporären Verzeichnis des Servers gespeichert, was der Dateiverwaltung und -anwendung nicht förderlich ist.

Daher müssen viele Webentwickler den Speicherpfad der von PHP hochgeladenen Dateien ändern, damit die hochgeladenen Dateien im angegebenen Verzeichnis gespeichert werden können. In diesem Artikel wird hauptsächlich erläutert, wie Sie den Speicherpfad der von PHP hochgeladenen Dateien ändern, sowie einige Probleme, die beim Ändern des Pfads beachtet werden müssen.

1. Legen Sie das PHP-Upload-Verzeichnis fest

In PHP wird der Pfad, in dem hochgeladene Dateien gespeichert werden, durch die Variable $_FILES['userfile']['tmp_name'] gesteuert. Standardmäßig verweist diese Variable auf das temporäre Upload-Verzeichnis auf dem PHP-Server. Der spezifische Pfad ist normalerweise /tmp oder /var/tmp. Um die hochgeladene Datei im angegebenen Verzeichnis zu speichern, müssen Sie die Variable upload_tmp_dir festlegen, um den Verzeichnispfad für den Datei-Upload anzugeben. $_FILES['userfile']['tmp_name'] 控制的。默认情况下,这个变量指向PHP服务器上的临时上传目录,具体路径通常是 /tmp 或者 /var/tmp。为了保存上传的文件到指定的目录中,需要设置 upload_tmp_dir 变量来指定文件上传的目录路径。

具体的设置方法有两种:

  1. 在PHP的配置文件 php.ini 中设置。

找到以下两个参数:

upload_tmp_dir = /path/to/upload/dir
upload_max_filesize = 2M

其中,upload_max_filesize 是指定文件上传的最大大小,单位为字节。上述代码表示上传文件的最大大小为 2M。

  1. 在PHP代码中使用 ini_set 函数设置。

如果您没有权限修改 php.ini 配置文件,可以在PHP代码中使用 ini_set 函数动态设置上传目录路径。例如:

ini_set('upload_tmp_dir', '/path/to/upload/dir');
ini_set('upload_max_filesize', '2M');

这些代码会将PHP的上传路径设置为 /path/to/upload/dir,并限制上传文件的最大大小为 2M。

二、设置上传文件的目标路径

在设置了上传目录后,PHP 会将上传的文件存储在所指定的目录中。但是,目前为止,还没有指定上传文件存储的最终目标路径。本节将介绍如何设置上传文件的目标路径。

  1. 使用 move_uploaded_file 函数

在PHP中,可以使用内置函数 move_uploaded_file 来将上传的文件移动到指定的目标路径。move_uploaded_file 函数接受两个参数,分别是上传文件的临时路径和目标路径。例如:

$uploadfile = '/path/to/upload/dir/' . basename($_FILES['userfile']['name']);
 
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "文件已经被成功上传!";
} else {
    echo "上传失败!";
}

以上代码首先定义了上传文件的临时目录,并使用 move_uploaded_file 函数将上传的文件移动到指定的目标路径中。这样,就可以将文件以指定的文件名称,保存在指定的目录中了。

  1. 检查上传文件的类型和大小

为了避免上传非法文件和大文件,我们还应该在上传过程中,检查上传文件的类型和大小。这可以通过使用PHP的预定义变量 $_FILES

Es gibt zwei spezifische Einstellungsmethoden:

Einstellung in der PHP-Konfigurationsdatei php.ini.

  1. Suchen Sie die folgenden zwei Parameter:
  2. $uploadfile = '/path/to/upload/dir/' . basename($_FILES['userfile']['name']);
     
    $allowedExtensions = ['jpg', 'png', 'gif'];
    $maxSize = 1000000;
     
    if (in_array(pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION), $allowedExtensions)
        && $_FILES['userfile']['size'] <= $maxSize
        && move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
     
        echo "文件已经被成功上传!";
    } else {
        echo "上传失败!";
    }
  3. Unter diesen ist upload_max_filesize die maximale Größe des angegebenen Datei-Uploads in Bytes. Der obige Code gibt an, dass die maximale Größe der hochgeladenen Datei 2 MB beträgt.
    1. Verwenden Sie die Funktionseinstellung ini_set im PHP-Code.
    2. Wenn Sie nicht berechtigt sind, die Konfigurationsdatei php.ini zu ändern, können Sie die Funktion ini_set im PHP-Code verwenden, um den Upload-Verzeichnispfad dynamisch festzulegen. Zum Beispiel:
    rrreee

    Diese Codes setzen den PHP-Upload-Pfad auf /path/to/upload/dir und begrenzen die maximale Größe der hochgeladenen Datei auf 2 MB.

    2. Legen Sie den Zielpfad der hochgeladenen Datei fest

    🎜Nachdem Sie das Upload-Verzeichnis festgelegt haben, speichert PHP die hochgeladene Datei im angegebenen Verzeichnis. Bisher wurde jedoch der endgültige Zielpfad für die Speicherung hochgeladener Dateien nicht angegeben. In diesem Abschnitt wird erläutert, wie Sie den Zielpfad für hochgeladene Dateien festlegen. 🎜🎜🎜Verwenden Sie die Funktion „move_uploaded_file“ 🎜🎜🎜In PHP können Sie die integrierte Funktion move_uploaded_file verwenden, um die hochgeladene Datei in den angegebenen Zielpfad zu verschieben. Die Funktion move_uploaded_file akzeptiert zwei Parameter, nämlich den temporären Pfad und den Zielpfad der hochgeladenen Datei. Zum Beispiel: 🎜rrreee🎜Der obige Code definiert zunächst das temporäre Verzeichnis zum Hochladen von Dateien und verwendet die Funktion move_uploaded_file, um die hochgeladenen Dateien in den angegebenen Zielpfad zu verschieben. Auf diese Weise kann die Datei im angegebenen Verzeichnis mit dem angegebenen Dateinamen gespeichert werden. 🎜
      🎜Überprüfen Sie Typ und Größe der hochgeladenen Dateien🎜🎜🎜Um das Hochladen illegaler und großer Dateien zu vermeiden, sollten wir während des Upload-Vorgangs auch den Typ und die Größe der hochgeladenen Dateien überprüfen. Dies kann durch die Verwendung der vordefinierten PHP-Variable $_FILES erreicht werden. Zum Beispiel: 🎜rrreee🎜Im Code legen wir die Dateitypen und Dateigrößen fest, die hochgeladen werden dürfen, und filtern entsprechend. Wenn Typ und Größe der hochgeladenen Datei den Anforderungen entsprechen, wird sie im angegebenen Pfad gespeichert. 🎜🎜3. Hinweise🎜🎜🎜Stellen Sie beim Festlegen des Upload-Verzeichnisses bitte die Lese- und Schreibrechte des Verzeichnisses sicher, da sonst keine Dateien im Verzeichnis erstellt werden können. 🎜🎜Beim Festlegen des Upload-Verzeichnisses verwenden Sie am besten einen absoluten Pfad, um Pfadfehler zu vermeiden. 🎜🎜 Dateigröße und -typ sollten beim Hochladen von Dateien überprüft werden, um das Hochladen illegaler Dateien oder großer Dateien, die zu viele Serverressourcen beanspruchen, zu vermeiden. 🎜🎜Vertrauen Sie beim Hochladen von Dateien nicht dem Namen und Typ der hochgeladenen Datei. Verwenden Sie zum Umbenennen von Dateien am besten SHA1 oder eine zufällige Zeichenfolge, um Dateinamenkollisionen und Sicherheitsprobleme zu vermeiden. 🎜🎜🎜Zusammenfassung🎜🎜In diesem Artikel wird erläutert, wie Sie den Speicherpfad von PHP-hochgeladenen Dateien ändern und den Zielpfad hochgeladener Dateien festlegen. Während des spezifischen Implementierungsprozesses müssen einige Vorsichtsmaßnahmen befolgt werden, um die Stabilität und Sicherheit des Datei-Uploads zu gewährleisten. Ich hoffe, dass der obige Inhalt für die Webanwendungsentwicklung aller hilfreich sein kann! 🎜

Das obige ist der detaillierte Inhalt vonSo ändern Sie den Speicherpfad von PHP-hochgeladenen 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