画像をアップロードして置換するための PHP メソッド: 最初に 2 つのファイルを作成します。次に、アップロードされるファイルの最大長を制限するために隠しフィールドが必要です。次に、最初にファイル タイプが画像形式かどうかを判断し、画像形式である場合は、 、ファイルをアップロードします; 最後に、ファイルをアップロードして、指定したファイルを置き換えるだけです。
画像をアップロードして置換するための 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>
ここで注意すべき点がいくつかあります。まずこの文を見てください。
<form method="post" action="change.php" enctype="multipart/form-data">
ここでは POST メソッドを使用します。ブラウザによっては PUT メソッドもサポートしています。もちろん、これにはスクリプトの変更が必要ですが、お勧めしません。 enctype="multipart/form-data
は、アップロードされたファイルに通常のフォーム情報が含まれていることをサーバーが認識できるように、フォームに設定する必要があります。これは必ず設定する必要があることに注意してください。アップロードされるファイルの最大長を制限するための隠しフィールド:
、ここで name は次のように設定する必要があります。 MAX_FILE_SIZE
、その値はアップロードされるファイルの最大長で、単位は B で、ここでは 2M に制限します。 この文をもう一度見てください:
<input name="file" type="file" value="浏览" >
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['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)
関数とは何ですか?画像ファイル pic などの例を示します。 jpg. strrchr(pic.jpg,'.') を処理するために strrchar() を使用すると、.jpg
が返されます。わかりますか? この関数は、指定された文字の最後の位置の後の文字を返しますsubstr() を使用すると、jpg を取得できるため、ファイルのサフィックス名を取得して、アップロードされたファイルが指定された形式に準拠しているかどうかを判断できます。このプログラムは、指定された形式を配列に入れます。
次に、関数を呼び出してファイルの種類を決定し、小文字に変換します
, ここに非常に重要なもの $_FILES があります。これは、処理する必要があるフォーム データを保存するスーパー グローバル配列です。register_globals
がオンになっている場合は、それにアクセスすることもできます直接入力しますが、これは安全ではありません。今のものを見てください。インターフェイス <input name="file" type="file">
をアップロードすると、このフォーム名に従って、多くの情報を取得できます。 :
#$_FILES['file']['type']--get ファイルの MIME タイプ
#アップロードに成功すると、プレビューが出力されます。そうでない場合、出力アップロードは失敗します
以上がPHP で画像をアップロードして置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。