PHP と Qiniu Cloud Storage インターフェイスを使用してリアルタイム処理と画像のクイック プレビューを実現する方法
要約: この記事では、PHP と Qiniu Cloud Storage インターフェイスを使用してリアルタイム処理を実現する方法を紹介します。画像のクイックプレビューも可能です。画像の処理方法、サムネイルの生成方法、クイック プレビュー機能の提供方法を読者が理解できるように、サンプル コードを通じて具体的な手順を説明します。
インターネットの急速な発展に伴い、画像は情報伝達の重要な要素の一つとして、さまざまな分野で広く利用されています。ユーザーエクスペリエンスを向上させるには、通常、サムネイルの生成や透かしの追加など、画像を処理する必要があります。同時に、同時実行性の高いシナリオでは、高速なプレビュー効果を提供するために、画像アクセスを保存して高速化するクラウド ストレージ サービスに依存する必要があります。
Qiniu Cloud Storage は、中国有数のクラウド ストレージ プラットフォームの 1 つで、開発者が画像を処理して保存できるようにする豊富なインターフェイスと強力な機能を提供します。サーバーサイド言語として PHP と組み合わせることで、リアルタイム処理と画像の素早いプレビューを簡単に実現できます。
実装を開始する前に、次の準備を完了する必要があります:
composer require qiniu/php-sdk composer require intervention/image
<?php require 'vendor/autoload.php'; use InterventionImageImageManagerStatic as Image; use QiniuAuth; use QiniuStorageUploadManager; // 七牛云账号信息 $accessKey = '<Your Access Key>'; $secretKey = '<Your Secret Key>'; $bucket = '<Your Bucket Name>'; // 构建Auth对象 $auth = new Auth($accessKey, $secretKey); // 在前端直传文件时,可以使用七牛云的回调机制获取到上传成功的文件信息 $callbackBody = '{"key": $(key), "hash": $(etag), "width": $(imageInfo.width), "height": $(imageInfo.height)}'; $callbackUrl = '<Your Callback URL>'; $callbackHost = '<Your Callback Host>'; $policy = array( 'callbackUrl' => $callbackUrl, 'callbackBody' => $callbackBody, 'callbackHost' => $callbackHost, 'mimeLimit' => 'image/*', // 限制文件类型为图片 ); // 生成上传Token $token = $auth->uploadToken($bucket, null, 3600, $policy); // 处理图片并上传到七牛云 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) { $file = $_FILES['image']; if ($file['error'] === 0) { // 使用Intervention/Image库处理图片 $image = Image::make($file['tmp_name']); // 生成缩略图(宽度为300px) $thumbnail = $image->resize(300, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); // 保存缩略图 $thumbnailFile = tempnam(sys_get_temp_dir(), 'thumbnail_'); $thumbnail->save($thumbnailFile); // 上传图片到七牛云 $uploader = new UploadManager(); $uploadResult = $uploader->putFile($token, null, $thumbnailFile); // 输出结果(包含上传成功后的文件信息) echo json_encode($uploadResult, JSON_PRETTY_PRINT); exit; } } ?> <!DOCTYPE html> <html> <head> <title>图片上传示例</title> </head> <body> <form method="post" enctype="multipart/form-data"> <input type="file" name="image"> <button type="submit">上传</button> </form> </body> </html>
以上がPHPとQiniuクラウドストレージインターフェースを利用して画像のリアルタイム処理とクイックプレビューを実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。