2009-12-16 193 views
1

我可以使用後上傳表單文件,但我試圖找出如何額外的字段添加到表單,即文件說明,類型等亞馬遜S3文件上傳

也可以我上傳超過一個文件一次,我知道它說,你不能在文檔中使用後,但有任何解決辦法?

由於提前

+0

您使用的是Amazon S3 API嗎?您是否使用任何PHP庫來訪問該API? – 2009-12-16 15:14:23

+0

我直接上傳到S3使用後 – 2009-12-17 10:51:23

回答

2

在問候上傳多個文件,您使用POST直接上傳到S3,或發佈使用curl或從自己的服務器中的類似的lib到S3?

爲什麼要添加這些額外的輸入?如果直接發佈到S3,則無法發佈任何在S3文檔中未指定爲必需或可選的輸入。任何不以「x-ignore-」開頭且不需要/可選用於S3發佈上傳的表單元素將導致從S3返回錯誤,而無需上傳文件。如果你的表單中有可能導致這個錯誤的元素,並且它們在提交之前留在表單中非常重要(用作ajax調用的輸入等),那麼只需將這些表單元素的名稱添加爲「x -ignore-「或從表單中刪除它們。

您可以控制幾件事情,例如文件的名稱和使用Content-Type和Content-Disposition元素的類型。看看這個: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1434

+0

我需要額外的領域插入數據有關文件到MySQL數據庫,我上傳到S3直接使用後。 – 2009-12-17 10:50:35

+0

有兩種方法可以做到這一點,然後,如果你想擁有與amazon上傳表單相同形式的表單域。 無論哪種方式,你必須有一個JavaScript鉤子提交表單時。第一種方法是嚴格使用JS來捕獲所需的元素,並將其格式化爲GET樣式字符串,然後將其附加到您在amazon POST中指定的返回url的末尾。然後,當調用返回腳本時,用戶可以在查詢字符串中輸入用於處理的值。 – eCaroth 2009-12-17 19:43:19

+0

其次,您可以使用JS從字段中獲取值,並在表單實際發佈到Amazon之前使用AJAX將該信息獲取到數據庫中。 無論如何,您必須刪除字段或將其名稱附加到「x-ignore-」,然後再將其發佈到亞馬遜,否則您將收到錯誤消息。 – eCaroth 2009-12-17 19:44:42

0

您可以將您的附加信息的「返回URL」您一起發送您的要求亞馬遜。

請注意,這樣做可能會以URL的形式向用戶公開有關您的應用邏輯的敏感信息。您可以做的一件事是避免/隱藏這個功能,即在返回時捕獲所有GET變量,保存它們並將用戶重定向到摘要頁面。

這不會阻止更聰明的用戶形成學習您的GET變量,但會將它們從99%的公衆中隱藏起來。