質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SDK

SDK(software development kit)は特定のハードウェアのプラットフォーム、開発環境又はソフトウェアパッケージでソフトウェアをつくるのに必要な開発ツールのセットです。SDKはAPI、IDE又は他の開発ツールとフレームワークを組み合わせたもので構成されていることがあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

462閲覧

AWS SDK for php によるS3への画像アップロードについて

rumi

総合スコア46

SDK

SDK(software development kit)は特定のハードウェアのプラットフォーム、開発環境又はソフトウェアパッケージでソフトウェアをつくるのに必要な開発ツールのセットです。SDKはAPI、IDE又は他の開発ツールとフレームワークを組み合わせたもので構成されていることがあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2017/11/17 00:27

プロフィール画像において、AWS SDK for phpで、AWS S3へ画像をアップロードしたいです。

<現状>
echo $result['ObjectURL'] . "\n";でAWSのURLがブラウザに表示され、$keyname = 'upload-nct/profile/${filename}';で仮で書いているfilenmeのテキストファイルがS3に格納されています。S3への接続はできましたが、下記のその先がわかりません。

<実現したいこと>
HTMLのid="profilePhoto"でアップロードした画像をS3に保存したいです。

html

1<div class="profile-pic"> 2 <img data-ele="profile_pic" src="%show_main_user_image%" alt="Change Profile Picture" style="width: 100%"/ > 3</div> 4<form id="frmProfilePic" enctype="multipart/form-data"action="s3upload.php" method="post"> 5<a data-ele="cropProfPic" class="profile-link" href="javascript:void(0)";>プロフィール写真の変更 6<input type="file" id="profilePhoto" name="key" value="upload-nct/profile/${filename}" /> 7<input type="hidden" name="crop_action" value="edit_profile" /> 8<input type="hidden" name="height" id="height" value="500" /> 9<input type="hidden" name="width" id="width" value="500" /> 10 11

php

1 2<!-- AWS S3への画像アップロード --> 3<?php 4 5// Include the AWS SDK using the Composer autoloader. 6require '../../vendor/autoload.php'; 7 8use Aws\S3\S3Client; 9use Aws\S3\Exception\S3Exception; 10 11 12$bucket = '********[仮で置いています]; 13$keyname = 'upload-nct/profile/${filename}'; 14 15// Instantiate the client. 16$s3 = S3Client::factory([ 17'version' => '2006-03-01', 18'region' => 'ap-northeast-1' 19]); 20 21try { 22 // Upload data. 23 $result = $s3->putObject(array( 24'Bucket' => $bucket, 25'Key' => $keyname, 26'id' => $profilePhoto, 27'Body' => 'Hello, world!', 28 'ACL' => 'public-read' 29 )); 30 // Print the URL to the object. 31 echo $result['ObjectURL'] . "\n"; 32} catch (S3Exception $e) { 33 echo $e->getMessage() . "\n"; 34} 35?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

公式のコードそのままですが、S3へファイルをアップロードする場合は、SourceFileでファイルパスを指定するようですね。
ContentTypeは、アップロードするのが画像ということで、image/jpegとかを指定してください。

// Upload a file. $result = $s3->putObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'SourceFile' => $filepath, 'ContentType' => 'text/plain', 'ACL' => 'public-read', 'StorageClass' => 'REDUCED_REDUNDANCY', 'Metadata' => array( 'param1' => 'value 1', 'param2' => 'value 2' ) ));

PHPでのファイルアップロードについては、"PHP ファイル アップロード"とかで調べれば良いかと思います。
参考までに。

PHPでのファイルアップロードのおさらい - Qiita

後、公式も。

PHP: POST メソッドによるアップロード - Manual

投稿2017/11/18 17:36

sa-yu

総合スコア201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問