Maison >développement back-end >Problème PHP >Comment télécharger et remplacer des images avec PHP ?
Comment télécharger et remplacer des images en PHP : créez d'abord deux fichiers ; ensuite, un champ caché est nécessaire pour limiter la longueur maximale du fichier téléchargé, puis déterminez d'abord si le type de fichier est un format d'image, et si ; alors, téléchargez le fichier ; enfin, téléchargez simplement le fichier et remplacez le fichier spécifié.
Comment télécharger et remplacer des images en PHP :
Créez d'abord deux fichiers : change.html et change The Le code du formulaire du fichier .php
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 points auxquels il faut faire attention ici. Tout d'abord, regardez cette phrase
<form method="post" action="change.php" enctype="multipart/form-data">Ici nous utilisons la méthode POST, Certains navigateurs supportent également la méthode PUT. Bien entendu, cela nécessite de modifier le script, ce que je ne recommande pas.
doit être défini dans le formulaire, afin que le serveur sache que le fichier téléchargé contient des informations régulières du formulaire. N'oubliez pas que cela doit être défini. enctype="multipart/form-data
, où le nom doit être défini sur ca7c72e55fdeefac9381b5387aff6f43
, et sa valeur est la longueur maximale du fichier téléchargé . L'unité est B. Ici je la limite à 2M. MAX_FILE_SIZE
<input name="file" type="file" value="浏览" >type="file" spécifie le type de fichier de cette façon, une interface de téléchargement de fichier de base est terminée. Parlons ensuite de la façon d'utiliser PHP. pour traiter le fichier de téléchargement. 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 dans le répertoire temporaire et. puis déplacé vers le répertoire spécifié ; le répertoire temporaire peut être modifié si nécessaire, ou la valeur par défaut peut être utilisée.
<?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 avoir un peu le vertige juste après avoir lu ces lignes. ~~, prenez votre temps, vous constaterez que cette chose est en fait SI FACILE ! ! Parlons d'abord du principe. Ce programme prend comme exemple le téléchargement d'images. Il détermine d'abord si le type de fichier est un format d'image. Si tel est le cas, télécharge ensuite le fichier et remplace celui spécifié. Si le téléchargement réussit, un aperçu de l’image téléchargée sera affiché. Voici quelques explications de certaines fonctions du programme. Regardons d'abord ce que fait la fonction
substr(strrchr($newfile, '.'), 1)
Laissez-moi vous donner un exemple et tout le monde le saura, comme un fichier image pic.jpg. pour le traiter, strrchr(pic .jpg,'.'), il reviendra strrchar()
, compris ? Cette fonction renvoie la chaîne après la dernière occurrence du caractère spécifié dans la chaîne. Avec substr(), nous pouvons obtenir jpg, afin de pouvoir obtenir l'extension du fichier afin de 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é selon les besoins lors de l'utilisation réelle. .jpg
Il y a un élément très clé ici $_FILES Il s'agit d'un tableau super global qui enregistre les informations. doit être traité. Les données du formulaire sont également accessibles directement si strtolower($_FILES['file']['name'])
est activé, mais cela n'est pas sécurisé. Regardez l'interface de téléchargement register_globals
tout à l'heure. D'après le nom de ce formulaire, nous pouvons obtenir beaucoup d'informations : 09a18f06b1fc7735fa981fca1c929702
Recommandations d'apprentissage associées :
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!