ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで画像ファイルをアップロードして置換する方法

PHP_PHP チュートリアルで画像ファイルをアップロードして置換する方法

WBOY
WBOYオリジナル
2016-07-12 08:57:331104ブラウズ

PHPで画像ファイルをアップロードして置換する方法

まず、change.htmlとchange.phpの2つのファイルを作成します

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



変更ファイルの例。



< ;form method="post" action="changefile.php" enctype="multipart/form-data">






ファイル:



td>




ここで注意すべき点がいくつかあります

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

以下はフォーム送信のchange.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(strto lower($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 "

ファイルがアップロードされました。アップロード画像プレビュー:

";
}
}else{
echo "
アップロードに失敗しました。ファイルは 2M を超えています。
";
}
}else{
$ text = implode(",", $type);
echo "
次の種類のファイルのみをアップロードできます:", $text, "

";
// echo "< script>alert('次の種類のファイルのみアップロードできます: $text')";
}
}

changeFile("./files/1.png");

初めて読むときは少しめまいがするかもしれません~~ でも、ゆっくり見てみると、これが実際にはとても簡単であることがわかります! !まず原理について説明します。このプログラムは、ファイルの種類が画像形式であるかどうかを判断し、指定されたファイルを置き換えます。アップロードが成功すると、アップロードされた画像のプレビューが出力されます。ここでは、プログラム内のいくつかの関数について説明します。まず substr(strrchr($newfile, '.'), 1) を見てみましょう。strrchar() 関数の役割は何ですか? たとえば、画像ファイル pic について説明します。 .jpg の場合、strrcchar() を使用して処理します。strrchr(pic.jpg,'.') を実行すると、.jpg が返されます。この関数は、文字列内で指定された文字が最後に出現した後の文字列を返します。 substr() を使用すると、jpg を取得できるため、ファイル拡張子を取得して、アップロードされたファイルが指定された形式に準拠しているかどうかを判断できます。このプログラムは、指定された形式を配列に配置し、実際の使用中に必要に応じて追加できます。 次に、ファイルの種類を決定し、それを小文字に変換する関数 strto lower($_FILES['file']['name']) を呼び出します。ここには非常に重要な点があります $_FILES、これはスーパー グローバル配列には、処理する必要があるフォーム データが格納されます。 register_globals がオンになっている場合は、直接アクセスすることもできますが、これは安全ではありません。今アップロード インターフェースを見てください name="file"
type="file"> このフォーム名に基づいて、多くの情報を取得できます: $_FILES['file '][' name']-- ファイル名を取得します$_FILES['file']['tmp_name']-- 一時的な保存場所を取得します$_FILES['file']['size' ]--ファイルサイズを取得します $_FILES[
'file']['type']--ファイルのMIMEタイプを取得します この情報があれば、ファイルの情報を簡単に判断することができてとても便利ですよね。 ^_^、次に理解する必要がある関数がいくつかあります。
file_exists()
-- 指定されたディレクトリが存在するかどうかを判断します。存在しない場合は、もちろんアップロードできません (ナンセンスのように思えます)。 !)、is_uploaded_file -- ファイルが HTTP POST 経由でアップロードされたかどうかを判断します。
move_uploaded_file -- アップロードされたファイルを指定されたディレクトリに移動します。アップロードが成功した場合はプレビューが出力され、そうでない場合は出力のアップロードは失敗します...
http://www.bkjia.com/PHPjc/1108339.html
www.bkjia.com

本当

http://www.bkjia.com/PHPjc/1108339.html

技術記事

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