モバイル インターネットの発展に伴い、写真はユーザーが共有しコミュニケーションするための重要かつ切り離せない要素になりました。従来の画像アップロードには FTP または HTTP が必要ですが、この方法は面倒なだけでなく不親切でもあります。この問題を解決するために、人々は徐々に PHP 言語を使用して画像をアップロードし、処理するようになりました。
今回は、PHPを使ってWebサイトに画像をアップロード・加工する方法を紹介します。
- 画像のアップロード
Web サイトに画像のアップロードを実装するには、HTML フォームを使用してファイル アップロード コントロールを作成する必要があります。以下は、ユーザーが画像をアップロードできる単純な HTML フォームです。
1 2 3 4 | <form action= "upload.php" method= "post" enctype= "multipart/form-data" >
<input type= "file" name= "image" >
<input type= "submit" value= "Upload" >
</form>
|
ログイン後にコピー
ファイル データを正しく転送できるように、フォームの enctype 属性を「multipart/form-data」に設定する必要があります。
PHP でファイルのアップロードを処理するには、アップロードされたファイルの情報を保存する $_FILES 配列を使用する必要があります。 PHP では、move_uploaded_file 関数を使用して、アップロードされたファイルをサーバー上の指定されたディレクトリに移動できます。
次は、PHP アップロード処理のコード テンプレートです。ユーザーが送信したフォームを処理し、ユーザーがアップロードした画像をサーバーに保存し、アップロード結果を返します:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php
$target_dir = "uploads/" ;
$target_file = $target_dir . basename ( $_FILES [ "image" ][ "name" ]);
$uploadOk = 1;
if (isset( $_POST [ "submit" ])) {
$check = getimagesize ( $_FILES [ "image" ][ "tmp_name" ]);
if ( $check !== false) {
echo "File is an image - " . $check [ "mime" ] . "." ;
$uploadOk = 1;
} else {
echo "File is not an image." ;
$uploadOk = 0;
}
}
if ( file_exists ( $target_file )) {
echo "Sorry, file already exists." ;
$uploadOk = 0;
}
if ( $_FILES [ "image" ][ "size" ] > 5000000) {
echo "Sorry, your file is too large." ;
$uploadOk = 0;
}
if ( $uploadOk == 1) {
if (move_uploaded_file( $_FILES [ "image" ][ "tmp_name" ], $target_file )) {
echo "The file " . basename ( $_FILES [ "image" ][ "name" ]). " has been uploaded." ;
} else {
echo "Sorry, there was an error uploading your file." ;
}
}
?>
|
ログイン後にコピー
- 画像処理
画像をアップロードした後、さまざまなスタイルや効果を表示するために画像を処理する必要もあります。 PHP では、GD ライブラリを使用して画像処理操作を完了できます。 GDライブラリはPHPの拡張ライブラリであり、サムネイルの生成、切り取り、回転、透かしなどの様々な画像処理機能を提供します。
次は、指定された幅と高さのサムネイルを生成するための PHP コード テンプレートです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php
$thumb_width = 200;
$thumb_height = 200;
$image_file = "uploads/" . basename ( $_FILES [ "image" ][ "name" ]);
$thumbnail_file = "thumbnails/" . basename ( $_FILES [ "image" ][ "name" ]);
$image_res = new GdImage();
$image_res ->load( $image_file );
$orig_width = $image_res ->getWidth();
$orig_height = $image_res ->getHeight();
$ratio_orig = $orig_width / $orig_height ;
if ( $thumb_width / $thumb_height > $ratio_orig ) {
$thumb_width = $thumb_height * $ratio_orig ;
} else {
$thumb_height = $thumb_width / $ratio_orig ;
}
$thumb_res = imagecreatetruecolor( $thumb_width , $thumb_height );
imagecopyresampled( $thumb_res , $image_res , 0, 0, 0, 0, $thumb_width ,
$thumb_height , $orig_width , $orig_height );
imagejpeg( $thumb_res , $thumbnail_file );
?>
|
ログイン後にコピー
上記は、サムネイルを生成するための単純な PHP コード テンプレートです。実際のアプリケーションでは、特定のニーズに基づいて、GD ライブラリの他の機能と組み合わせて、さまざまな画像処理操作を完了する必要があります。
概要
上記の紹介を通じて、PHP を使用して Web サイトに画像をアップロードおよび処理する方法を理解できたはずです。 PHP の構文は非常に単純ですが、特定の機能を実装する場合は、根気よく慎重にデバッグする必要があります。ご質問やご提案がございましたら、以下にメッセージを残してください。
以上がPHPで画像のアップロードと処理を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。