ホームページ >バックエンド開発 >PHPの問題 >ファイルをアップロードしてPHPで置き換える方法

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

藏色散人
藏色散人オリジナル
2021-02-25 10:06:582873ブラウズ

php メソッドを使用してファイルをアップロードして置換します。まず、「change.html」と「change.php」という 2 つのファイルを作成します。次に、「strrchar()」を使用してファイルを処理し、呼び出してファイルを決定します。ファイルタイプ関数を使用して小文字に変換し、最後にファイルをアップロードして置換します。

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

この記事の動作環境:Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン

画像ファイルのアップロード方法

最初に 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 アップロードは最初に一時ディレクトリにアップロードされ、次に指定されたディレクトリに移動されます。はい、はい。一時ディレクトリは必要に応じて変更することも、デフォルト値を使用することもできます...

[推奨される学習: 「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() の関数は何ですか? 例を示します。たとえば、画像ファイル pic.jpg の場合、strrchr(pic.jpg,'.') という strrcchar( ) 処理を使用すると、.jpg が返されます。わかりますか? この関数は、.jpg の最後の位置の後の文字列を返します。文字列内の指定された文字。substr() を使用すると、jpg にアクセスできるため、ファイルのサフィックス名を取得して、アップロードされたファイルが指定された形式に準拠しているかどうかを判断できます。このプログラムは、指定された形式を配列に入れます。実際の使用中に必要に応じて追加できます。

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

$_FILES['file'] ['name'] -- ファイル名を取得します

$_FILES['file']['tmp_name']--一時的な保存場所を取得します

$_FILES['file'][ 'size'] -- ファイル サイズを取得します。

$_FILES['file']['type'] -- ファイルの MIME タイプを取得します。

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

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

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