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">
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 <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
, 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="浏览" >
<?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");
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 : <input name="file" type="file">
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!