Maison >développement back-end >Problème PHP >Comment télécharger des fichiers et les remplacer en php
Comment télécharger et remplacer des fichiers en PHP : créez d'abord deux fichiers, à savoir "change.html" et "change.php" puis utilisez "strrchar()" pour traiter le fichier puis appelez pour déterminer le ; fonction de type de fichier et convertissez-le en minuscules ; enfin, téléchargez et remplacez le fichier.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Comment télécharger des fichiers image avec php, et Remplacez
Créez d'abord deux fichiers : change.html et change.php
change.html Le code de forme du fichier est le suivant :
<html> <head> <title>change file example.</title> <meta charset="UTF-8"> </head> <body> <form method="post" action="changefile.php" enctype="multipart/form-data"> <table border=0 cellspacing=0 cellpadding=0 align=center width="100%"> <tr> <td width=55 height=20 align="center"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> 文件: </td> <td> <input name="file" type="file" /> <input type="submit" name="submit" value="submit" /> </td> </tr> </table> </form> </body> </html>
Voici quelques choses à faire. Choses auxquelles il faut prêter attention, regardez d'abord la phrase 1a123767db84ac117fb1eb1f208cd298. la méthode POST. Certains navigateurs prennent également en charge la méthode PUT. Bien sûr, cela nécessite des modifications du script, ce que je ne recommande pas. Enctype="multipart/form-data doit être défini dans le formulaire, afin que le serveur sache que le fichier téléchargé contient des informations de formulaire normales. N'oubliez pas que cela doit être défini. De plus, un champ masqué est nécessaire pour limiter la longueur maximale du formulaire. le fichier téléchargé : < ;input type="hidden" name="MAX_FILE_SIZE" value="2000000">, ici le nom doit être défini sur MAX_FILE_SIZE, et sa valeur est la longueur maximale du fichier téléchargé, l'unité est B, ici, je le limite à 2M. :f1c3c26395f0f952a2084fb0b034997b, type="file" indique le type de fichier De cette façon, une interface de téléchargement de fichier de base est complétée. Parlons ensuite de la façon d'utiliser PHP pour traiter les fichiers téléchargés. De plus, la longueur maximale des fichiers téléchargés définie dans votre php.ini peut affecter votre téléchargement réel. Veuillez la modifier en fonction de la situation réelle. sont d'abord téléchargés dans un répertoire temporaire, puis déplacés vers le répertoire spécifié Oui, oui ; le répertoire temporaire peut être modifié si nécessaire, ou la valeur par défaut peut être utilisée...
[Apprentissage recommandé : "Tutoriel vidéo PHP"]
Voici le formulaire Soumettez le code du fichier change.php et jetez un œil à ce que contient ce fichier :
<?php header("content-type:text/html;charset=utf-8"); /** * @param string $oldfile 需要更换的文件名(包含具体路径名) */ function changeFile($oldfile){ $newfile = $_FILES['file']['name'];//获取上传文件名 $fileclass = substr(strrchr($newfile, '.'), 1);//获取上传文件扩展名,做判断用 $type = array("jpg", "gif", "bmp", "jpeg", "png");//设置允许上传文件的类型 if(in_array(strtolower($fileclass), $type)){ if(file_exists($oldfile)){ unlink($oldfile); } if(is_uploaded_file($_FILES['file']['tmp_name'])){//必须通过 PHP 的 HTTP POST 上传机制所上传的 if(move_uploaded_file($_FILES['file']['tmp_name'], $oldfile)){ //输出图片预览 echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$oldfile'></center>"; } }else{ echo "<center>上传失败,文件大于2M,请重新上传!</center>"; } }else{ $text = implode(",", $type); echo "<center>您只能上传以下类型文件:", $text, "</center><br>"; // echo "<script>alert('您只能上传以下类型文件:$text')</script>"; } } changeFile("./files/1.png");
Vous êtes peut-être un peu confus au début, mais si vous y regardez lentement, vous constaterez que cette chose est en fait SI FACILE. Basé sur le principe suivant, ce programme prend le téléchargement d'images comme exemple. Il détermine d'abord si le type de fichier est au format image. Si c'est le cas, il télécharge le fichier, puis télécharge le fichier et remplace le fichier spécifié. Si le téléchargement réussit, un aperçu de l'image téléchargée est affiché. Voici quelques fonctions du programme. at substr(strrchr($newfile, '.'), 1) d'abord. Quelle est la fonction de strrchar() ? Par exemple, pour un fichier image pic.jpg, nous utilisons le traitement strrchar(). , strrchr(pic.jpg,'.'), il retournera .jpg Comprenez-vous ? Cette fonction renvoie la chaîne après la dernière occurrence de la chaîne, avec substr(), nous pouvons l'obtenir. peut obtenir le nom de suffixe du fichier pour déterminer si le fichier téléchargé est conforme au format spécifié. Ce programme place le format spécifié dans un tableau, qui peut être ajouté si nécessaire lors de l'utilisation réelle. Nous appelons la fonction pour déterminer le type de fichier et. convertissez-le en minuscule strtolower($_FILES['file']['name']). Il y a un élément très clé ici $_FILES Il s'agit d'un tableau super global qui enregistre les données requises du formulaire. register_globals est activé, mais ce n'est pas sûr. Regardez l'interface de téléchargement tout à l'heure fa68a6172e90ddc4102f2ff67a357dc2 D'après ce nom de formulaire, nous pouvons obtenir beaucoup d'informations :
$_FILES['file']. ['name'] -- Obtenez le nom du fichier
$_FILES['file']['tmp_name'] --Obtenez l'emplacement de stockage temporaire
$_FILES['file'][ 'size']--Obtenir la taille du fichier
$_FILES['file']['type']--Obtenir le type MIME du fichier
En obtenant ces informations, vous pouvez facilement déterminer le fichier informations. N'est-ce pas très pratique ? Ensuite, il y a certaines fonctions qui doivent être comprises, file_exists()--détermine si le répertoire spécifié existe. S'il n'existe pas, bien sûr, nous ne pouvons pas le télécharger (cela semble absurde !), is_uploaded_file--détermine si le répertoire spécifié existe. le fichier a été téléchargé via HTTP POST, move_uploaded_file--will upload Le fichier est déplacé vers le répertoire spécifié. Si le téléchargement réussit, nous afficherons l'aperçu, sinon le téléchargement de sortie échouera...
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!