Maison >développement back-end >Problème PHP >Comment modifier le chemin de sauvegarde des fichiers téléchargés PHP

Comment modifier le chemin de sauvegarde des fichiers téléchargés PHP

PHPz
PHPzoriginal
2023-04-04 10:41:181662parcourir

PHP, en tant que langage de script côté serveur, est largement utilisé dans le développement Web. Lors du processus de développement d'applications Web, il est souvent nécessaire de télécharger certains fichiers, tels que des images, des documents, etc. PHP fournit une fonction de téléchargement de fichiers pratique, mais les fichiers téléchargés sont stockés par défaut dans le répertoire temporaire du serveur, ce qui n'est pas propice à la gestion et à l'application des fichiers.

Par conséquent, de nombreux développeurs Web doivent modifier le chemin de sauvegarde des fichiers téléchargés PHP afin que les fichiers téléchargés puissent être stockés dans le répertoire spécifié. Cet article présente principalement comment modifier le chemin de sauvegarde des fichiers téléchargés PHP, ainsi que certains problèmes auxquels il faut prêter attention lors de la modification du chemin.

1. Définissez le répertoire de téléchargement PHP

En PHP, le chemin où les fichiers téléchargés sont enregistrés est contrôlé par la variable $_FILES['userfile']['tmp_name']. Par défaut, cette variable pointe vers le répertoire de téléchargement temporaire sur le serveur PHP. Le chemin spécifique est généralement /tmp ou /var/tmp. Afin d'enregistrer le fichier téléchargé dans le répertoire spécifié, vous devez définir la variable upload_tmp_dir pour spécifier le chemin du répertoire pour le téléchargement du fichier. $_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

Il existe deux méthodes de paramétrage spécifiques :

Défini dans le fichier de configuration PHP php.ini.

  1. Retrouvez les deux paramètres suivants :
  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. Parmi eux, upload_max_filesize est la taille maximale du téléchargement de fichier spécifié, en octets. Le code ci-dessus indique que la taille maximale du fichier téléchargé est de 2 Mo.
    1. Utilisez le paramètre de fonction ini_set dans le code PHP.
    2. Si vous n'êtes pas autorisé à modifier le fichier de configuration php.ini, vous pouvez utiliser la fonction ini_set dans le code PHP pour définir dynamiquement le chemin du répertoire de téléchargement. Par exemple :
    rrreee

    Ces codes définiront le chemin de téléchargement PHP sur /path/to/upload/dir et limiteront la taille maximale du fichier téléchargé à 2 Mo.

    2. Définissez le chemin cible du fichier téléchargé

    🎜Après avoir défini le répertoire de téléchargement, PHP stockera le fichier téléchargé dans le répertoire spécifié. Cependant, jusqu'à présent, le chemin de destination finale du stockage des fichiers téléchargés n'a pas été spécifié. Cette section explique comment définir le chemin de destination des fichiers téléchargés. 🎜🎜🎜Utilisez la fonction move_uploaded_file 🎜🎜🎜En PHP, vous pouvez utiliser la fonction intégrée move_uploaded_file pour déplacer le fichier téléchargé vers le chemin cible spécifié. La fonction move_uploaded_file accepte deux paramètres, qui sont le chemin temporaire et le chemin cible du fichier téléchargé. Par exemple : 🎜rrreee🎜Le code ci-dessus définit d'abord le répertoire temporaire pour le téléchargement des fichiers et utilise la fonction move_uploaded_file pour déplacer les fichiers téléchargés vers le chemin cible spécifié. De cette façon, le fichier peut être enregistré dans le répertoire spécifié avec le nom de fichier spécifié. 🎜
      🎜Vérifiez le type et la taille des fichiers téléchargés🎜🎜🎜Afin d'éviter de télécharger des fichiers illégaux et des fichiers volumineux, nous devons également vérifier le type et la taille des fichiers téléchargés pendant le processus de téléchargement. Ceci peut être réalisé en utilisant la variable prédéfinie de PHP $_FILES. Par exemple : 🎜rrreee🎜Dans le code, nous définissons les types et les tailles de fichiers autorisés à être téléchargés, et nous les filtrons en conséquence. Si le type et la taille du fichier téléchargé répondent aux exigences, il sera enregistré dans le chemin spécifié. 🎜🎜3. Notes🎜🎜🎜Lors de la définition du répertoire de téléchargement, veuillez vous assurer des autorisations de lecture et d'écriture du répertoire, sinon les fichiers ne pourront pas être créés dans le répertoire. 🎜🎜Lors de la définition du répertoire de téléchargement, il est préférable d'utiliser un chemin absolu pour éviter les erreurs de chemin. 🎜🎜 La taille et le type de fichier doivent être vérifiés lors du téléchargement de fichiers pour éviter de télécharger des fichiers illégaux ou des fichiers volumineux qui occupent trop de ressources du serveur. 🎜🎜Lors du téléchargement de fichiers, ne vous fiez pas au nom et au type du fichier téléchargé. Il est préférable d'utiliser SHA1 ou une chaîne aléatoire pour renommer les fichiers afin d'éviter les collisions de noms de fichiers et les problèmes de sécurité. 🎜🎜🎜Résumé🎜🎜Cet article explique comment modifier le chemin d'enregistrement des fichiers téléchargés PHP et définir le chemin cible des fichiers téléchargés. Au cours du processus de mise en œuvre spécifique, certaines précautions doivent être suivies pour garantir la stabilité et la sécurité du téléchargement de fichiers. J’espère que le contenu ci-dessus pourra être utile au développement d’applications Web de chacun ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn