如何在表格中保留Uploadcare图像?

时间:2016-03-12 17:36:19

标签: php uploadcare

我有一个表单,我想用PHP验证。来自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输入小部件有自己的处理方式,因此查询。

3 个答案:

答案 0 :(得分:3)

作为documentation says

  

[role = uploadcare-uploader]输入的值为空或带有文件UUID的CDN链接。

     

如果您在外部设置输入的值并触发DOM更改事件,它将反映在窗口小部件中。例如,将其设置为文件UUID或CDN链接将显示该窗口小部件中上载的文件。您可以在实时窗口小部件上执行此操作,甚至可以在实际加载之前执行此操作。

所以你的第二个片段应该可以正常工作。

您可能还想知道设置窗口小部件值via JS的方式:

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

答案 1 :(得分:1)

对此进行排序。它可以用Value来完成。太好了!

https://uploadcare.com/documentation/widget/#input-value

答案 2 :(得分: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变量来访问imageid:

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

int 123456

有关会话的更多信息,请参阅php文档:http://php.net/manual/en/book.session.php