2013-03-16 52 views
0

我正在學習如何在執行此代碼之前在亞馬遜S3上傳圖像文件。但是當我使用localhost加載頁面時,我看到一個空白屏幕。不知道爲什麼。 我試圖刪除php代碼中的行。我猜在實例化S3構造函數時出錯了,但不確定。 我也嘗試上傳文件在我的本地主機(不亞馬遜)上使用PHP也有我發現這種情況。 所以大家在哪裏居住的問題? 請幫幫我。我被卡住了。putbucket和putobject不工作。點擊上傳按鈕後獲得空白屏幕

<?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

坑看起來你是混合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(); 
} 
+0

我刪除

即使如此,它不工作 – Lovy 2013-03-16 08:50:14

+0

它顯示黑屏甚至沒有形式:( – Lovy 2013-03-16 08:52:09

+1

改變自身到S3,但仍然黑屏。當我註釋行涉及$ s3我可以看到這個表格 – Lovy 2013-03-16 08:57:09