【问题标题】:How to create a folder in Firebase Storage with PHP?如何使用 PHP 在 Firebase Storage 中创建文件夹?
【发布时间】:2020-01-05 21:43:34
【问题描述】:

我的问题试图创建一个小脚本,允许我在 Firebase 中创建一个 文件夹 并在其中创建一个 文件 (jpg) 存储。我在web 上发现,只需将 文件夹 的名称放在 file 的名称之前应该生成,但不会生成和加载文件。只有当我在 Storage 中手动创建文件夹时才会加载该文件。

我的上传代码:

public function upload(){
        $this->bucket->upload(
            file_get_contents($_FILES['uploadedfile']['tmp_name']),
            [
                'name' => "ena/" . $_FILES['uploadedfile']['name']
            ]
        );
}

我正在使用Kreait 库。 感谢您,我期待您的支持。

【问题讨论】:

  • 我在本地测试了这个(使用已经存在的文件,而不是使用 $_FILES),它对我有用。您能否通过调试file_get_contents($_FILES['uploadedfile']['tmp_name'])$_FILES['uploadedfile']['name'] 的内容来调试它,以确保a)有文件内容和b)目标路径/文件名与您期望的一样?我还建议先使用move_uploaded_file() (php.net/manual/en/function.move-uploaded-file.php),然后在移动的上传文件中使用$this->bucket->upload()
  • 朋友感谢您的支持。但是你会自动生成文件夹吗?
  • 是的,它对我有用,这就是为什么我建议调试步骤并使用move_uploaded_files(),因为这是我本地测试脚本的不同之处。
  • 好的,我会尝试,但是如果您可以加载那部分代码来指导我。我会很感激的。

标签: php firebase firebase-storage


【解决方案1】:

感谢 jeromegamez,该代码为我实现并正常工作。其逻辑很简单,它接收文件并将其移动到服务器,一旦移动它就会将其加载到 firebase 存储。

$target_path = "uploads/"; 

    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

    $name =  $_FILES['uploadedfile']['name'];

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 

        $myfile = fopen($target_path, "r")  ;

        echo "The file ". basename( $_FILES['uploadedfile']['name'])." has been uploaded"; 

        $this->bucket->upload($myfile, [
            'name' => $_POST["proyecto"] . "/" . $name
        ]);

    } else{ 
        echo "There was an error uploading the file, please try again!"; 
    }

【讨论】:

    猜你喜欢
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多