【问题标题】:Can't upload a image from a URI to firebase Storage in PHP无法将图像从 URI 上传到 PHP 中的 Firebase 存储
【发布时间】:2019-11-10 13:59:31
【问题描述】:

我实际上是在尝试将图像从其 URI 上传到我项目的 Firebase 存储位置。

注意 1:我对 Firebase 的访问似乎工作正常,因为我能够使用相同的 SDK 对我的 Firestore 数据库进行写入和读取。我已经使用 composer 安装了整个套装。

注意 2:我没有直接使用 $_FILES[],因为我在选择图像后正在编辑它。因此我的文件的输入数据与我编辑的图像不同。

注意 3:当发送回我的表单文件时,编辑后的图像的 URI 在标签中完美运行。

1- 在我的表单文件中:

<img class="rounded" id="header" src="images/header_placeholder.png" alt="header">
<input type="file" class="sr-only" id="header_input" name="header_img" accept="image/*">
<input id="header_img_url" name="header_img_url" type="hidden" value="">

在提交之前,我的隐藏输入值会用我编辑的图像 URI 重新分配。

2- 在我上传的 PHP 文件中(为了清楚起见,我删除了大部分 Firestore 代码)

<?php 
require '../../vendor/autoload.php';
use Google\Cloud\Firestore\FirestoreClient;
use Google\Cloud\Core\GeoPoint;
use Google\Cloud\Storage\StorageClient;

function generateRandomString($length = 20) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

$db = new FirestoreClient([
        'projectId' => 'hotpot-XXXXX',
    ]);

# Instantiates a client
$storage = new StorageClient([
    'projectId' => 'hotpot-XXXXX',
]);

$bucket = $storage->bucket('gs://hotpot-XXXXX.appspot.com/');


    $headerImgID = generateRandomString();
    $iconeImgID = generateRandomString();

    $file = fopen($_POST['header_img_url'], 'r');

    $bucket->upload($file, [
        'name' => $headerImgID
    ]);

当存在上传行时,我的脚本实际上崩溃了:

    $bucket->upload($file, [
        'name' => $headerImgID
    ]);

我希望你能帮我找出我错的地方,因为我一直在搜索和尝试很多,但我无法修复它:/

【问题讨论】:

    标签: php image firebase google-cloud-firestore google-cloud-storage


    【解决方案1】:

    好的,我误解了“桶”是什么......正确的方法是使用 hotpot-XXXXX.appspot.com 而不使用 gs://。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 2021-09-18
      • 2020-07-10
      • 2021-07-28
      • 2021-10-12
      • 2018-01-13
      • 2021-09-10
      相关资源
      最近更新 更多