2013-10-03 102 views
0

我正在嘗試將文件推送到Amazon s3 filebucket。如何使用MAMP將文件上傳到亞馬遜S3?

我通過html表單發佈文件。

我嘗試生成像這樣的文件的路徑($文件一個foreach的一部分,因爲我需要支持的形式提交多個文件。)

$file['tmp_name'].'/'.$file['name']; 

這個輸出文件路徑像這樣

/Applications/MAMP/tmp/php/phpZDcVQv/pdf.pdf 

/應用程序/ MAMP/tmp/php/exists,但裏面沒有東西。我已經爲每個人設置了讀取和寫入權限的文件夾。

我使用庫將圖像發佈到亞馬遜:https://github.com/tpyo/amazon-s3-php-class它也抱怨我提供的文件路徑不存在。它正在運行一個檢查,如:

if (!file_exists($file) || !is_file($file) || !is_readable($file)) 

如何不添加文件? 我是否引用了錯誤的文件夾?帶有代碼的文件位於/ web/projectname/ 互聯網上的某些人表示,有些關於php直接刪除臨時文件的內容不清楚。這是在響應運行後嗎?我需要以某種方式解決這個問題嗎?

最簡單的代碼生成的問題:

foreach ($_FILES as $file) { 
    $filepath = $file['tmp_name'].'/'.$file['name']; 
    if(file_exists($filepath)){ 
     echo 'true <br />'; 
    }else{ 
     echo 'false <br />'; 
    } 

} 

這種回聲:ES假即使文件已被上傳。

$ filepath包含我上面描述的路徑。

+0

我們需要處理HTML表單的代碼,特別是文件上傳。 – NDM

+0

現在加入!謝謝。 – Himmators

+0

你有沒有閱讀[處理上傳手冊](http://www.php.net/manual/en/features.file-upload.post-method.php)? – NDM

回答

0

the manual states如:

$_FILES['userfile']['tmp_name'] ,其中上載的文件被存儲在服務器上的文件的臨時文件名。

$_FILES['userfile']['name'] 在客戶端計算機上的文件的原始名稱。

這意味着file_exists($file['tmp_name'])應該是true

路徑$file['tmp_name'].'/'.$file['name']是虛假的,因爲$file['name']僅用於通知您原始名稱,但在將上載的文件保存在服務器上時未使用此名稱。

所以在你的例子中/Applications/MAMP/tmp/php/phpZDcVQv實際上是上傳的文件。