3

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

4

3 回答 3

3

正如文档所说

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

如果你在外部设置了 input 的值并触发了 DOM change 事件,它会反映在 widget 中。例如,将其设置为文件 UUID 或 CDN 链接将在小部件中显示该文件已上传。您可以在实时小部件上执行此操作,甚至可以在它实际加载之前执行此操作。

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

您可能还想知道通过 JS设置小部件值的方法:

var widget = uploadcare.Widget('[role=uploadcare-uploader]');
widget.value("https://ucarecdn.com/e8ebfe20-8c11-4a94-9b40-52ecad7d8d1a/billmurray.jpg");
于 2016-03-14T09:36:39.460 回答
1

整理了这个。它可以用价值来完成。伟大的!

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

于 2016-03-12T20:49:04.660 回答
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

于 2016-03-12T18:58:21.933 回答