Heim >Backend-Entwicklung >PHP-Problem >So laden Sie Bilder hoch und ersetzen sie in PHP

So laden Sie Bilder hoch und ersetzen sie in PHP

藏色散人
藏色散人Original
2020-08-06 10:04:433457Durchsuche

So laden Sie Bilder hoch und ersetzen sie in PHP: Erstellen Sie zuerst die Dateien „change.html“ und „change.php“. Stellen Sie dann fest, ob es sich bei dem Dateityp um ein Bildformat handelt. Wenn ja, laden Sie die Datei hoch und ersetzen Sie die angegebene Datei. Rufen Sie schließlich die Funktion auf, um den Dateityp zu ermitteln und ihn in Kleinbuchstaben umzuwandeln.

So laden Sie Bilder hoch und ersetzen sie in PHP

Empfohlen: „PHP-Video-Tutorial

php zum Hochladen von Bilddateien und Ersetzen

Erstellen Sie zunächst zwei Dateien: change.html und change.php

change.html-Dateiformat Der Code lautet wie folgt:

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

Hier gibt es ein paar Dinge zu beachten. Schauen Sie sich zunächst diesen Satz an: 1a123767db84ac117fb1eb1f208cd298, Hier verwenden wir die POST-Methode. Einige Browser unterstützen natürlich auch die PUT-Methode. Dies erfordert natürlich eine Änderung des Skripts, was ich nicht empfehle. Enctype="multipart/form-data muss im Formular festgelegt werden, damit der Server weiß, dass die hochgeladene Datei reguläre Formularinformationen enthält. Denken Sie daran, dass dies festgelegt werden muss. Darüber hinaus ist ein verstecktes Feld erforderlich, um die maximale Länge zu begrenzen die hochgeladene Datei: < ;input type="hidden" name="MAX_FILE_SIZE" value="2000000">, hier muss der Name auf MAX_FILE_SIZE gesetzt werden und sein Wert ist die maximale Länge der hochgeladenen Datei, die Einheit ist B, Hier beschränke ich es auf 2M. :f1c3c26395f0f952a2084fb0b034997b, type="file" gibt den Dateityp an. Auf diese Weise wird eine grundlegende Datei-Upload-Schnittstelle vervollständigt Lassen Sie uns als Nächstes darüber sprechen, wie Sie hochgeladene Dateien mit PHP verarbeiten. Außerdem kann sich die in Ihrer php.ini festgelegte maximale Länge auf Ihren tatsächlichen Upload auswirken werden zuerst in das temporäre Verzeichnis hochgeladen und dann in das angegebene Verzeichnis verschoben. Ja, ja; das temporäre Verzeichnis kann nach Bedarf geändert werden, oder der Standardwert kann verwendet werden ...

Das Folgende ist der Code für die Änderung des Formulars .php-Datei, mal sehen, was diese Datei enthält:

<?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");

Nachdem Sie das gelesen haben, wird Ihnen vielleicht etwas schwindlig. Schauen Sie sich das an, Sie werden feststellen, dass das Ding tatsächlich SO EINFACH ist! Das Programm nimmt als Beispiel das Hochladen von Bildern. Es ermittelt zunächst, ob es sich bei dem Dateityp um ein Bildformat handelt, und lädt dann die angegebene Datei hoch. Hier werden zunächst einige Funktionen im Programm erläutert Schauen Sie sich substr(strrchr($newfile, '.'), 1) an. Was ist die Funktion von strrchar()? Zum Beispiel, wenn wir strrchar() verwenden, um eine Bilddatei pic.jpg zu verarbeiten , strrchr(pic.jpg,'.') gibt .jpg zurück. Mit substr() können wir das angegebene Zeichen abrufen Wir können das Suffix der Datei abrufen, um festzustellen, ob die hochgeladene Datei dem angegebenen Format entspricht. Sie können es bei Bedarf während der tatsächlichen Verwendung hinzufügen.

Als nächstes rufen wir die Funktion auf, um den Dateityp zu ermitteln und zu konvertieren in Kleinbuchstaben strtolower($_FILES['file']['name']). Der Schlüssel ist $_FILES, ein superglobales Array, das die zu verarbeitenden Formulardaten speichert Wenn es aktiviert ist, kann auch direkt darauf zugegriffen werden, aber das ist unsicher. Schauen Sie sich gerade die Upload-Schnittstelle an Informationen:

$_FILES[&#39;file&#39;][&#39;name&#39;]--   得到文件名称
$_FILES[&#39;file&#39;][&#39;tmp_name&#39;]--得到临时存储位置
$_FILES[&#39;file&#39;][&#39;size&#39;]--得到文件大小
$_FILES[&#39;file&#39;][&#39;type&#39;]--得到文件MIME类型

Mit diesen Informationen können wir die Informationen der Datei leicht ermitteln. Ist das nicht sehr praktisch? ^_^, es gibt einige Funktionen, die als nächstes verstanden werden müssen, file_exists() – bestimmt, ob das angegebene Verzeichnis existiert. Wenn es nicht existiert, können wir es natürlich nicht hochladen (es scheint Unsinn zu sein!), is_uploaded_file--. Bestimmen Sie, ob die Datei über HTTP POST hochgeladen wurde. move_uploaded_file – Verschieben Sie die hochgeladene Datei in das angegebene Verzeichnis. Wenn der Upload erfolgreich ist, geben wir die Vorschau aus, andernfalls schlägt der Ausgabe-Upload fehl...

Das obige ist der detaillierte Inhalt vonSo laden Sie Bilder hoch und ersetzen sie in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn