Maison  >  Article  >  développement back-end  >  Comment télécharger un fichier et modifier son nom en utilisant PHP

Comment télécharger un fichier et modifier son nom en utilisant PHP

PHPz
PHPzoriginal
2023-04-21 09:07:391829parcourir

PHP est un langage de script côté serveur populaire utilisé pour développer des applications Web dynamiques. En PHP, le téléchargement de fichiers est une opération courante. Parfois, le nom du fichier que nous devons télécharger peut être différent du nom réel du fichier. Dans cet article, nous expliquerons comment télécharger un fichier et changer son nom en utilisant PHP.

1. Téléchargez le fichier

En PHP, vous pouvez utiliser la fonction readfile() pour lire le fichier et l'envoyer au navigateur. Voici un exemple de fichier download.php de base qui téléchargera un fichier spécifié. readfile() 函数来读取文件并将其发送到浏览器。以下是一个基本的 download.php 文件的示例,该文件将对指定的文件进行下载。

$file = $_GET['file'];

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . basename($file) . '"');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}

在上面的代码中,我们首先获取要下载的文件名。然后,我们检查该文件是否存在。如果文件存在,我们设置文件类型、文件名和文件大小的 HTTP 标头,并使用 readfile() 函数将文件发送到浏览器,最后退出脚本。

二、修改文件名称

如果我们需要修改下载文件的名称,我们可以在上面的代码中对文件名进行修改。例如,我们可以将上面的代码修改为以下内容,其中新文件名以 "downloaded_" 作为前缀:

$file = $_GET['file'];
$newFileName = "downloaded_" . basename($file);

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . $newFileName . '"');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}

在上面的代码中,我们添加了一个新的变量 $newFileName,用于存储下载文件的新名称。在 header() 函数中,我们使用新的文件名替换了 basename($file)。这样就会将下载的文件名称设置为新的名称。

三、其他修改方式

除了在 header() 函数中直接修改文件名称之外,我们还可以使用其他方式对文件名称进行修改。例如,我们可以使用 PHP 中的 rename() 函数来对文件进行重命名。

以下是一个示例代码,该代码将下载文件的名称更改为 "downloaded_" + 文件名:

$file = $_GET['file'];
$newFileName = "downloaded_" . basename($file);

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . $newFileName . '"');
    header('Content-Length: ' . filesize($file));

    rename($file, $newFileName);

    readfile($newFileName);
    exit;
}

在上面的代码中,我们添加了一个 rename() 函数将下载的文件重命名为新的文件名。然后,我们使用 readfile() 函数将新文件发送到浏览器,最后退出脚本。

总结:

在 PHP 中下载文件并修改文件名称是一个常见的需求。我们可以使用 readfile() 函数来读取文件并将其发送到浏览器,同时还可以使用 header() 函数来设置文件类型、文件名和文件大小的 HTTP 标头。如果需要修改文件名称,我们可以在 header() 函数中直接进行修改,或者使用 PHP 中的 rename()rrreee

Dans le code ci-dessus, nous obtenons d'abord le nom du fichier à télécharger. Ensuite, nous vérifions si le fichier existe. Si le fichier existe, nous définissons les en-têtes HTTP pour le type, le nom et la taille du fichier, envoyons le fichier au navigateur à l'aide de la fonction readfile(), et enfin quittons le script. 🎜🎜2. Modifier le nom du fichier🎜🎜Si nous devons modifier le nom du fichier téléchargé, nous pouvons modifier le nom du fichier dans le code ci-dessus. Par exemple, nous pouvons modifier le code ci-dessus comme suit, où le nouveau nom de fichier est préfixé par "downloaded_": 🎜rrreee🎜 Dans le code ci-dessus, nous avons ajouté une nouvelle variable $newFileName, Le nouveau nom utilisé pour stocker le fichier téléchargé. Dans la fonction header(), nous avons remplacé basename($file) par le nouveau nom de fichier. Cela définira le nom du fichier téléchargé sur le nouveau nom. 🎜🎜3. Autres méthodes de modification🎜🎜En plus de modifier directement le nom du fichier dans la fonction header(), nous pouvons également utiliser d'autres méthodes pour modifier le nom du fichier. Par exemple, nous pouvons utiliser la fonction rename() en PHP pour renommer des fichiers. 🎜🎜Ce qui suit est un exemple de code qui change le nom du fichier téléchargé en "downloaded_" + nom du fichier : 🎜rrreee🎜Dans le code ci-dessus, nous avons ajouté une fonction rename() qui téléchargera Le fichier est renommé avec le nouveau nom de fichier. Nous utilisons ensuite la fonction readfile() pour envoyer le nouveau fichier au navigateur, et enfin quitter le script. 🎜🎜Résumé : 🎜🎜Le téléchargement de fichiers et la modification des noms de fichiers en PHP sont un besoin courant. Nous pouvons utiliser la fonction readfile() pour lire le fichier et l'envoyer au navigateur, et nous pouvons également utiliser la fonction header() pour définir le type de fichier, fichier nom et taille du fichier en-tête HTTP. Si nous devons modifier le nom du fichier, nous pouvons le modifier directement dans la fonction header(), ou utiliser la fonction rename() en PHP pour renommer le fichier. 🎜

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