我正在按照教程在amazon s3上传图像文件,这是我在执行此代码之前所做的。但是当我使用localhost加载页面时,我看到一个空白的屏幕。不知道为什么。 我试图删除PHP代码中的行。我想在实例化S3构造函数时会出现问题,但不确定。 我也试图在我的localhost(不是亚马逊)上使用php上传文件,我也发现了这种情况。 那么家伙问题出在哪里? 请帮我。我被卡住了。
<?php
$bucketname="myname";
if(!class_exists('S3')) require_once('S3.php');
if(!defined('awsAccessKey')) define('awsAccessKey','key');
if(!defined('awsSecretKey')) define('awsSecretKey','secretkey');
$s3= new S3(awsAccessKey, awsSecretKey);
if(isset($_POST['Submit']))
{
$fileName= $_FILES['theFile']['name'];
$fileTempName= $_FILES['theFile']['tmp_name'];
$s3->putBucket($bucketname, S3::ACL_PUBLIC_READ);
//if($s3->putObjectFile($fileTempName,$bucketname,$fileName, S3::ACL_PUBLIC_READ)
//{
// echo "We successfully uploaded your file.";
//}
//else
//{
// echo "something went wrong";
//}
try
{
$s3->putObjectFile($fileTempName,$bucketname,$fileName, S3::ACL_PUBLIC_READ);
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="theFile" type="file" />
<input name="Submit" type="submit" value="Upload"/>
</form>
答案 0 :(得分:0)
Pit看起来像是在混合HTML和php
$s3->putBucket($bucketname, S3::ACL_PUBLIC_READ);<br><br>
此行也看错了
if($s3->putObjectFile($fileTempName,$bucketname,$fileName, Se::ACL_PUBLIC_READ)
应该是
if($s3->putObjectFile($fileTempName,$bucketname,$fileName, S3::ACL_PUBLIC_READ)
您需要仔细检查您的PHP语法。也许在代码中放一些echo语句来输出一些调试信息。你也可以尝试一下代码
try
{
$s3->putObjectFile(params);
}
catch(Exception $e)
{
echo $e->getMessage();
}