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 avec PHP ?

coldplay.xixi
coldplay.xixioriginal
2020-07-24 14:52:192336parcourir

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 avec PHP ?

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

De plus, un champ masqué est nécessaire pour limiter la longueur maximale du fichier téléchargé :

, 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

Regardez à nouveau cette phrase :

<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.


Voici le code du fichier change.php de soumission du formulaire. Jetons un coup d'œil à ce que contient ce fichier :

<?php
header("content-type:text/html;charset=utf-8");
 
  
 
/**
* @param string $oldfile 需要更换的文件名(包含具体路径名)
*/
function changeFile($oldfile){
$newfile = $_FILES[&#39;file&#39;][&#39;name&#39;];//获取上传文件名
$fileclass = substr(strrchr($newfile, &#39;.&#39;), 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[&#39;file&#39;][&#39;tmp_name&#39;])){//必须通过 PHP 的 HTTP POST 上传机制所上传的 
if(move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;], $oldfile)){ 
//输出图片预览
echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src=&#39;$oldfile&#39;></center>";
}
}else{
echo "<center>上传失败,文件大于2M,请重新上传!</center>";
}
}else{
$text = implode(",", $type);
echo "<center>您只能上传以下类型文件:", $text, "</center><br>";
// echo "<script>alert(&#39;您只能上传以下类型文件:$text&#39;)</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, &#39;.&#39;), 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

Ensuite, nous appelons la fonction pour déterminer le type de fichier et le convertir en minuscules

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

  • $_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

Après avoir obtenu ces informations, vous pouvez facilement déterminer les informations du fichier, n'est-ce pas très pratique ? ^_^, certaines fonctions doivent être comprises ensuite,

  • file_exists() -- déterminer si le répertoire spécifié existe. S'il n'existe pas, bien sûr, nous ne pouvons pas télécharger. it

  • is_uploaded_file--Déterminer si le fichier a été téléchargé via HTTP POST

  • move_uploaded_file--Déplacer le fichier téléchargé vers le répertoire spécifié

Téléchargement réussi, nous afficherons un aperçu, sinon le téléchargement de sortie échouera

Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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

Articles Liés

Voir plus