【发布时间】:2012-11-20 00:12:27
【问题描述】:
...为登录时上传图片供个人使用的用户创建存储桶和子目录。
图片成功上传到s3服务器后,在html文件中以列表形式显示,如下:
<ul id="sortable-list">
<?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 class=\"default\"><img src=\"$furl\" width=\"100\"></li>";
{
$i = 0;
}
}
?>
</ul>
由于某种原因,子文件夹被识别为存储桶内的一个文件,并将$contents 的第一个元素填充为http://bucket_name.s3.amazonaws.com/subfolder/,但如果没有引用文件名,当然是空的。
我使用的 php 是上面提到的 tutsplus.com 教程中 page.php 的修改形式。与创建存储桶和子目录有关的代码在这里:
if(isset($_POST['Submit'])){
$fileName = $_FILES['theFile']['name'];
$fileTempName = $_FILES['theFile']['tmp_name'];
$folderName = "subfolder/$fileName";
$s3->putBucket("unique_id", S3::ACL_PUBLIC_READ);
if ($s3->putObjectFile($fileTempName, "unique_id", $folderName, S3::ACL_PUBLIC_READ)) {
echo "<strong>We successfully uploaded your file.</strong>";
}else{
echo "<strong>Something went wrong while uploading your file... sorry.</strong>";
}
}
需要帮助弄清楚如何防止子文件夹被识别为文件并在显示中创建元素。非常感谢
【问题讨论】: