0

このコードを実行する前に作成した画像ファイルをAmazon s3にアップロードするチュートリアルに従っています。しかし、localhost を使用してページを読み込むと、空白の画面が表示されます。理由がわからない。PHPコードの行を削除しようとしました。S3コンストラクターのインスタンス化中に何か問題が発生していると思いますが、よくわかりません。また、ローカルホスト(Amazonではありません)で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>
4

1 に答える 1

0

ピットは、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 の構文を注意深く確認する必要があります。おそらく、デバッグ情報を出力するためにコードにいくつかのエコーステートメントを入れてください。コードの周りに try キャッチを配置することもできます

try
{
   $s3->putObjectFile(params);
}
catch(Exception $e)
{
    echo $e->getMessage();
 }
于 2013-03-16T08:41:55.247 に答える