Maison > Article > développement back-end > Comment télécharger des images et les remplacer en php
Comment télécharger des images et les remplacer en PHP : créez d'abord les fichiers "change.html" et "change.php" ; puis déterminez si le type de fichier est un format d'image, et si c'est le cas, téléchargez le fichier et remplacez le fichier spécifié; enfin, appelez simplement la fonction qui détermine le type de fichier et convertissez-le en minuscules.
Recommandé : "Tutoriel vidéo PHP"
php implémente le téléchargement de fichiers image et remplace
Créez d'abord deux fichiers : change.html et change.php
Le code du formulaire du fichier change.html 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>
Il y a quelques éléments à faites attention ici, regardez d'abord cette phrase 1a123767db84ac117fb1eb1f208cd298 Ici, nous utilisons la méthode POST. Certains navigateurs prennent également en charge la méthode PUT. Bien sûr, cela nécessite de modifier le script. 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 Ceci termine une interface de téléchargement de fichier de base. expliquez comment 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. De plus, les téléchargements PHP sont d'abord téléchargés vers. le répertoire temporaire puis déplacé vers le répertoire spécifié. Oui, oui ; le répertoire temporaire peut être modifié selon les besoins, ou la valeur par défaut peut être utilisée...
Ce qui suit est le code pour le changement de soumission du formulaire. .php, voyons 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 pourriez être un peu étourdi lorsque vous lirez ceci pour la première fois, si vous le regardez lentement, vous constaterez que cette chose est en fait TELLEMENT FACILE ! sur le principe d'abord. Ce programme prend le téléchargement d'images comme exemple. Il détermine d'abord si le type de fichier est un format d'image, puis téléchargez le fichier et remplacez le fichier spécifié. un aperçu de l'image téléchargée sera affiché. Regardons d'abord substr(strrchr($newfile, '.'), 1), strrchar Quel est le rôle de la fonction () ? Par exemple, si nous utilisons strrchar() pour traiter un fichier image pic.jpg, strrchr(pic.jpg,'.'), il renverra .jpg. Je comprends. Cette fonction renvoie la chaîne après le. dernière occurrence de la chaîne. Avec substr(), nous pouvons obtenir le jpg, nous pouvons donc obtenir le suffixe du fichier pour déterminer si le fichier téléchargé est conforme au format spécifié. Ce programme met le format spécifié dans un tableau, ce qui peut. être ajouté selon les besoins lors de l'utilisation réelle.
Ensuite, nous appelons la fonction pour déterminer le type de fichier et le convertissons en minuscule strtolower($_FILES['file' ]['name']), il y a. une chose très critique ici $_FILES, qui est un tableau super global qui enregistre les données du formulaire qui doivent être traitées. Si register_globals est activé, vous pouvez également y accéder directement, mais ce n'est pas sûr. Regardez l'interface de téléchargement tout à l'heure. fa68a6172e90ddc4102f2ff67a357dc2. Selon ce nom de formulaire, nous pouvons obtenir beaucoup d'informations :
$_FILES['file']['name']-- 得到文件名称 $_FILES['file']['tmp_name']--得到临时存储位置 $_FILES['file']['size']--得到文件大小 $_FILES['file']['type']--得到文件MIME类型
Avec ces informations, nous pouvons facilement déterminer les informations du fichier Oui, n'est-ce pas très pratique ? ^_^, il y a certaines fonctions qui doivent être comprises ensuite, 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éterminez si le fichier a été téléchargé via HTTP POST, move_uploaded_file --Déplacez le fichier téléchargé 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!