ホームページ  >  記事  >  バックエンド開発  >  PHPで画像をアップロードして置き換える方法

PHPで画像をアップロードして置き換える方法

藏色散人
藏色散人オリジナル
2020-08-06 10:04:433420ブラウズ

php で画像をアップロードして置き換えるメソッド: まず「change.html」ファイルと「change.php」ファイルを作成し、次にファイル タイプが画像形式かどうかを判断し、画像形式である場合はファイルをアップロードして置き換えます。指定されたファイル; 最後に ファイルの種類を決定する関数を呼び出して小文字に変換するだけです。

PHPで画像をアップロードして置き換える方法

推奨: 「PHP ビデオ チュートリアル

php は画像ファイルのアップロードを実装し、 を置き換えます。

最初に 2 つのファイルを作成します:change.html と change.php

change.html ファイルのフォーム コードは次のとおりです:

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

支払うべきものがいくつかあります。ここに注意してください。まず、この文を見てください。1a123767db84ac117fb1eb1f208cd298。ここでは POST メソッドを使用します。一部のブラウザは PUT もサポートしていますもちろん、これにはスクリプトを変更する必要がありますが、お勧めしません。 enctype="multipart/form-data は、アップロードされたファイルに通常のフォーム情報が含まれていることをサーバーが認識できるように、フォームに設定する必要があります。これを設定する必要があることを覚えておいてください。また、最大長を制限するには、隠しフィールドが必要です。アップロードされたファイル: < ;input type="hidden" name="MAX_FILE_SIZE" value="2000000">、ここでの名前は MAX_FILE_SIZE に設定する必要があります、値はアップロードされたファイルの最大長、単位は B、ここでは 2M に制限します。もう一度この文を見てください:f1c3c26395f0f952a2084fb0b034997b, type="file" はファイルの種類を示します。このように、基本的なファイルアップロードインターフェースが完成しました。次に、PHP を使用してアップロードされたファイルを処理する方法について説明します。また、php.ini で設定したアップロードファイルの最大長は、実際のアップロードに影響を与える可能性があります。実際の状況に応じて修正してください。さらに、PHP アップロードは最初に一時ディレクトリにアップロードされ、次に指定されたディレクトリに移動されます。はい、はい。一時ディレクトリは必要に応じて変更することも、デフォルト値を使用することもできます...

以下は、フォーム送信のchange.phpファイルのコードです。このファイルの内容を見てみましょう:

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

初めて読むときは少しめまいがするかもしれません~~、しかし、ゆっくり見てみると、次のことがわかります。これは実際にはとても簡単です!! まず原理について話しましょう。このプログラムは写真のアップロードを例にとります。最初にファイルの種類が画像形式であるかどうかを判断します。画像形式である場合は、ファイルをアップロードしてから、ファイルをアップロードします。指定されたファイルに置き換えます。アップロードが成功すると、アップロードされた画像のプレビューが出力されます。プログラム内のいくつかの関数について説明します。まず、substr(strrchr($newfile, '.'), 1 を見てください。 ), strrchar () 関数の役割は何ですか? 例を挙げましょう。誰もが知っていると思います。たとえば、strrchar() を使用して画像ファイル pic.jpg, strrchr(pic.jpg,' を処理するとします)。 ') の場合、.jpg が返されます。わかりました。そうですか? この関数は、文字列内で指定された文字が最後に出現した後の文字列を返します。substr() を使用すると、jpg を取得できるため、サフィックスを取得できますファイルの内容を調べて、アップロードされたファイルが指定された形式に準拠しているかどうかを判断します。このプログラムは、指定された形式を配列に入れます。実際の使用中に必要に応じて追加できます。

次に、関数を呼び出して、アップロードされたファイルが指定された形式に準拠しているかを確認します。ファイルの種類を変更して小文字に変換します strto lower($_FILES['file' ]['name']) ここに非常に重要な点があります $_FILES は、処理する必要があるフォーム データを保存するスーパー グローバル配列です。 register_globals がオンになっている場合は、直接アクセスすることもできますが、これは安全ではありません。今アップロード インターフェイスを見てください fa68a6172e90ddc4102f2ff67a357dc2。このフォーム名によると、次のようになります。たくさんの情報:

$_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类型

この情報があれば、ファイル情報を簡単に判断できます。とても便利ですね。 ^_^, 次に理解する必要がある関数がいくつかあります, file_exists() -- 指定されたディレクトリが存在するかどうかを確認します。存在しない場合は、もちろんアップロードできません (ナンセンスのようです!)、is_uploaded_file--ファイルが HTTP POST 経由でアップロードされたかどうかを確認します。 move_uploaded_file -- アップロードされたファイルを指定されたディレクトリに移動します。アップロードが成功した場合はプレビューが出力され、そうでない場合は出力のアップロードは失敗します...

以上がPHPで画像をアップロードして置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。