【问题标题】:"Uploadcare" Issue using PHP使用 PHP 的“Uploadcare”问题
【发布时间】: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


【解决方案1】:

只需删除data-upload-url-base="",它会指示小部件使用“空”上传服务器而不是upload.uploadcare.com

【讨论】:

  • 不幸的是,这不起作用。我处于静止状态。我知道 uploadcare 通过 AJAX 自动将所选文件上传到我的帐户后端,因为当我检查网络活动时,在选择文件时,AJAX 请求被成功触发,并且包含新上传图像的 JSON 对象以及 UUID 是在回应中回馈。但是,它只是没有在我的 $_POST 全局中被识别。
猜你喜欢
  • 2018-07-29
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多