ホームページ >バックエンド開発 >PHPの問題 >PHPで画像をアップロードする簡単な方法

PHPで画像をアップロードする簡単な方法

藏色散人
藏色散人オリジナル
2020-11-04 09:48:3314809ブラウズ

php で写真をアップロードする方法: 最初に写真を保存するフォルダーを作成し、次に HTML 部分を作成し、次に php ファイルを作成してコード「」を入力し、最後に PHP コードを通じて写真をアップロードします。 。

PHPで画像をアップロードする簡単な方法

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

PHP での画像アップロード操作

フロントエンドプログラミングでは、閲覧者に特定の画像をアップロードさせる必要がある場合がありますが、この機能は PHP で実装できます。

1. 写真を保存するフォルダーを作成します

ここでは、ユーザーがアップロードした写真を保存するフォルダー「file」を作成します。この時点では、フォルダーは空であり、フォルダーの作成アドレスは任意ですが、アクセスしやすい場所に作成することをお勧めします。

2. HTML部分(uploadfile.html)を作成します

ここではHTMLのform formタグを使用しており、フォーム内の

<input type="file">来选择图片文件
<input type="submit">来提交图片相关信息

コードは以下のとおりです。

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
 </head>
 <body> 
  <form action="uploadHandler.php" method="post" enctype="multipart/form-data">
   Upload Img:<input type="file" name="img"/>
   <input type="submit" value="Upload"/>
  </form>
 </body>
</html>

注:

1. フォーム内のアクションは、画像のアップロードを処理するために後で作成される .php ファイルに接続されます。

2. form の属性に Enctype="multipart/form-data" を記載する必要があります。 enctype 属性は、フォーム データをサーバーに送信する前にエンコードする方法を指定します。 multipart/form-data は文字をエンコードしません。この値は、ファイル アップロード コントロールを含むフォームを使用する場合に必要です。

3. ここではpostメソッドを使用しています。

3. PHP パーツ (uploadHandler.php) を作成します

1. 原則

PHP ファイルを作成し、配列に

<?php var_dump($_FILES);  ?>
  那么我们会打印到一个相应的数组arr(1)。
  arr(1)的数组结构为:
array(1) { 
 ["img"]=> array(5) { 
  ["name"]=> string(**) "AAAAAAA.jpg" // 图片名
  ["type"]=> string(10) "image/jpeg" // 图片格式
  ["tmp_name"]=> string(45) "/Applications/XAMPP/xamppfiles/temp/phpVZQY0m" // 图片缓存地址
  ["error"]=> int(0) // 上传图片错误数
  ["size"]=> int(124246) // 图片大小
 } 
}

のみを入力します配列の下に要素 ["img"] があり、その下に 2 次元配列があり、name / type / tmp_name / error / size の 5 つの要素があります。

これらの属性から画像の基本情報を取得し、これらの基本属性を判断して画像をフォルダに保存します。

2. 実際の操作

以下の判断をしてください:

error [有]:提示错误❌
error [无]:下一步✅
    ╙type[非 img]:提示错误❌
    ╙type[img]:下一步✅
      ╙type[非 jpeg]:提示错误❌
      ╙type[jpeg]:下一步✅

上記の判断が満たされていれば、この画像は保存できると思います。

画像の名前の重複を避けるために、タイムスタンプの概念を使用して画像を新しいファイル名につなぎ合わせ、各画像に一意の名前が付けられるようにします。

そして、配列を作成できます。配列内の要素はさまざまな画像形式です。ファイルの画像形式と配列内の要素を比較します。画像形式が認識されない場合は、認識されません。救われます。

コードは次のとおりです:

<?php
// 接收文件
var_dump($_FILES); // 区别于$_POST、$_GET
print_r($_FILES);
$file = $_FILES["img"];
// 先判断有没有错
if ($file["error"] == 0) {
 // 成功 
 // 判断传输的文件是否是图片,类型是否合适
 // 获取传输的文件类型
 $typeArr = explode("/", $file["type"]);
 if($typeArr[0]== "image"){
  // 如果是图片类型
  $imgType = array("png","jpg","jpeg");
  if(in_array($typeArr[1], $imgType)){ // 图片格式是数组中的一个
   // 类型检查无误,保存到文件夹内
   // 给图片定一个新名字 (使用时间戳,防止重复)
   $imgname = "file/".time().".".$typeArr[1];
   // 将上传的文件写入到文件夹中
   // 参数1: 图片在服务器缓存的地址
   // 参数2: 图片的目的地址(最终保存的位置)
   // 最终会有一个布尔返回值
   $bol = move_uploaded_file($file["tmp_name"], $imgname);
   if($bol){
    echo "上传成功!";
   } else {
    echo "上传失败!";
   };
  };
 } else {
  // 不是图片类型
  echo "没有图片,再检查一下吧!";
 };
} else {
 // 失败
 echo $file["error"];
};
?>

4. 写真のアップロード

この時点で、すべてが要件を満たしていれば、アップロードした写真はファイルに保存されます。フォルダです。アップロードが成功しました!

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

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