次のコードを使用して、ユーザーがアップロードした写真を保存するために Amazon S3 を使用しています。
if(isset($_POST['Submit'])){
$fileName = $_FILES['theFile']['name'];
$fileTempName = $_FILES['theFile']['tmp_name'];
$folderName = "{id}/{address}/$fileName";
//create a new bucket
$s3->putBucket("bucket_name", S3::ACL_PUBLIC_READ);
//move the file
if ($s3->putObjectFile($fileTempName, "bucket_name", $folderName, S3::ACL_PUBLIC_READ)) {
echo ""; //etc, etc
およびは{id}
、{address}
mysql データベースに保存されている各ユーザーの一意のデータに基づいて、ファイルがアップロードされるときにフォルダーの外観を作成するために使用される動的変数です。
私が抱えている問題は、これらのファイルを各ユーザーのパスワードで保護されたサイト内に表示することです。以下で使用しているコードは、すべてのユーザーの写真を取得し、すべてのユーザーに表示します。{id}/{address}/$fileName
に変換した場合123/figuero/photo.jpg
、ユーザー123
は123/figuero/photo.jpg
(または序文123/
または123/xxx/
bucket_name
以下で使用しているコードでは、写真に関連付けられた動的データに関連付けられたファイルだけでなく、内部のすべてのファイルをすべてのユーザーが見ることができます。
<ul>
<?php
$i = 0;
$contents = $s3->getBucket("bucket_name");
foreach($contents as $file)
{
$fname = $file['name'];
$furl = 'http://bucket_name.s3.amazonaws.com/'.$fname;
echo "<li><img src='$furl'></li>";
{
$i = 0;
}
}
?>
<ul>
言い換えれば、http://bucket_name.S3.amazonaws.com/内のすべてのファイルは、コードによって表示されるようにプルされています。123
123/xxx/
私は何が欠けていますか?よろしくお願いします。