【发布时间】:2017-03-09 06:10:57
【问题描述】:
在尝试使用上传关怀的 PHP 库从图像上传中获取 UUID 时,我遇到了一个非常特殊的问题。图像已成功上传回我的 Uploadcare 存储及其相关的 UUID,但是在我的 php 脚本中,当我尝试从文件输入中获取 UUID 时,请求对象返回一个空字符串。
这里分别是导入的Uploadcare脚本标签和输入标签: *按照PHP Library Repo中的说明
<script>UPLOADCARE_PUBLIC_KEY = "2a92ab6d0aaae8efe942";</script>
<script src="https://ucarecdn.com/widget/2.9.0/uploadcare/uploadcare.full.min.js" charset="UTF-8"></script>
<input type="hidden" role="uploadcare-uploader" name="file_id" data-upload-url-base="">
现在我在检查器控制台中注意到,在上传图像期间,并且仅在这种情况下,我得到以下信息
加载资源失败。无法连接到服务器http://localhost:0/
错误:
我已经多次重新启动我的服务器(使用 MAMP)。正如我之前提到的,我所有的代码似乎都是正确的,图像已成功上传回我的 Uploadcare 存储...
有什么建议吗?
更新
这是我目前构建的代码。我正在使用符合 Twig 的 Slim 框架作为我的模板引擎:
use Uploadcare\Api;
$app->container->singleton('uploadcare', function() {
return new Api('2a92ab6d0aaae8efe942', 'SECRET KEY');
});
在我看来,我有以下 twig 语法,可以生成所需的 Uploadcare 脚本和输入标签:
<head>
{{ app.uploadCare.widget.getScriptTag | raw }}
<script>
UPLOADCARE_LIVE = false;
UPLOADCARE_DO_NOT_STORE = true;
UPLOADCARE_TABS = 'file';
UPLOADCARE_IMAGES_ONLY = true;
UPLOADCARE_CROP = 'free';
</script>
</head>
<body>
<form enctype='multipart/form-data' method="post">
{{ app.uploadCare.widget.getInputTag('file_id') | raw }}
</form>
</body>
现在我所做的只是在提交表单时在我的request 对象上添加一个var_dump,它显示file_id 参数以空字符串返回,而不是上传图像的UUID/新url :
$request = $app->request;
var_dump($request->post('file_id'));
呼应:
string(0) ""
更新 2
下面是通过 uploadcare 的 api 文件输入选择文件期间的网络活动截图。如您所见,其中一个 GET 请求失败,我猜这是导致故障的请求:
【问题讨论】:
-
你能添加一个渲染 HTML 的要点吗?
-
它呈现了我在最初的问题帖子中放置的确切 HTML。
getScriptTag函数呈现所需的必要脚本,getInputTag()函数呈现文件输入 @mojo -
请检查第二次更新@mojo
-
有某种模板,不是 HTML,请不要指望 SO 上的人知道您的特定模板语言。它也可能会引入它自己的问题。
-
特定的网络活动截图什么都没有显示(在提交表单之前文件是否上传成功?如果是,输入字段是否正确填充(通过 dom 检查器检查)?
标签: php uploadcare