2016-03-12 13 views
3

我有一個我想用PHP驗證的表單。從Uploadcare的小部件上傳的海報是該表單的一部分。如何在表單中保留Uploadcare圖像?

有時候用戶必須在表單中後退以修復內容 - 不正確的電子郵件等。我希望將選定的上載文件保留在該表單中。

這適用於後退按鈕被點擊時,但我不能依靠。我使用PHP POST變量來重新加載和重新填充表單。

我的問題:我可以在Uploadcare輸入按鈕中使用POST變量來使其「記住」並重新加載用戶以前上傳的所選圖片?

我目前的代碼。

<input type="hidden" 
     role="uploadcare-uploader" 
     data-preview-step="true" 
     data images-only="true" 
     name="adposter" 
     style="display: inline-block;" /> 

是否有可能做這樣的事情:

<input type="hidden" 
     role="uploadcare-uploader" 
     data-preview-step="true" 
     data-images-only="true" 
     name="adposter" 
     style="display: inline-block;" 
     value="<?php print isset($_POST["adposter"]) ? htmlspecialchars($_POST["adposter"]) : ""; ?>" 
/> 

一心只想與其他領域?顯然,Uploadcare輸入小部件有自己的做事方式,因此是查詢。

+0

的'$ _POST'變量是用來接收由瀏覽器發送的數據,你不能用它來傳遞變量到一個HTML模板。但是,您可以簡單地將PHP中的變量設置爲文件ID,然後將其用作「「/>' – max

回答

0

您可以使用$_POST將變量從一種形式傳遞到另一種形式,就像您使用隱藏字段所描述的一樣。但是這不是非常有效,而且當您將信息寫回客戶端時,他們可以改變這一點。

一種更好的方式來保存這些類型的變量是利用$_SESSION

會話支持允許你存儲 $ _SESSION超全局數組中的請求之間的數據。當訪問者訪問您的站點時,PHP 將自動檢查(如果session.auto_start設置爲1)或 您的請求(顯式通過session_start())是否與請求一起發送了特定的 會話ID。如果是這種情況,則會重新創建之前保存的環境 。 http://php.net/manual/en/intro.session.php

所以圖像上傳後,您存儲的圖片ID在$_SESSION

session_start(); 
$_SESSION['imageid'] = 123456; 

然後連表格後,你可以簡單地通過再次使用$_SESSION變量訪問圖像標識:

session_start(); 
var_dump($_SESSION['imageid']); 

int 123456 

有關會話的更多信息,請參閱php文檔:http://php.net/manual/en/book.session.php

+0

感謝球員 - 我應該澄清 - 我的問題更多的是關於Uploadcare輸入類型將如何接受Value =」xxxx「。 因此,例如Uploadcare從用戶處獲取一個文件,併爲其提供了id,例如859510a2-b15b-4fb3-9b02-08c95685dffd。 上傳後,小部件通常會告訴用戶他們上傳文件的名稱及其文件大小 - 例如「image.gif,33kb」。 我的問題是我是否可以將id - 859510a2-b15b-4fb3-9b02-08c95685dffd - 作爲輸入元素Value返回到html表單中,並且u/c小部件是否會接受該值。我參加了會議的事情:) –

2

作爲documentation says

[角色= uploadcare-上載]輸入的值是與文件UUID空或CDN鏈接。

如果您在外部設置輸入的值並觸發DOM更改事件,它將反映在窗口小部件中。例如,將其設置爲文件UUID或CDN鏈接將顯示該文件已上傳到小部件中。您可以在實時小部件上或甚至在實際加載之前執行此操作。

所以你的第二個片段應該正常工作。

你可能也想知道設置widget的價值via JS方式:

var widget = uploadcare.Widget('[role=uploadcare-uploader]'); 
widget.value("https://ucarecdn.com/e8ebfe20-8c11-4a94-9b40-52ecad7d8d1a/billmurray.jpg");