谷歌云平台 - 如何将图像文件上传到谷歌云存储桶?

杰西尔·德索萨

我正在尝试使用谷歌云存储 JSON API 将图像上传到谷歌云存储桶。文件正在上传,但没有显示任何内容。

<?php

    if(isset($_POST["submit"]))
    {
        // Move uploaded file to a temp location
        $uploadDir = 'temp/';
        $filename=$_FILES["fileToUpload"]["name"];
        $filesize=$_FILES["fileToUpload"]["size"];
        $uploadFile = $uploadDir . basename($_FILES['fileToUpload']['name']);

        $authheaders = array(
            "Authorization: Bearer xxxxxx(my access token)",
            "Content-Type: image/jpeg",
            "Content-Length:".$filesize

        ); //The access-token has to be generate everytime after one-hour.

        if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $uploadFile))
        {
            // Prepare remote upload data
            $uploadRequest = array(
                'fileName' => basename($uploadFile),
                'fileData' => file_get_contents($uploadFile)
            );

            // Execute remote upload
            $curl = curl_init();
            $url="https://www.googleapis.com/upload/storage/v1/b/[bucket_name]/o?uploadType=media&name=".$filename;
            curl_setopt($curl, CURLOPT_URL,$url);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $authheaders);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_TIMEOUT, 30);
            curl_setopt($curl, CURLOPT_POST, 1);    
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $uploadRequest);
            $response = curl_exec($curl);
            curl_close($curl);
            echo $response;

        }
    }
?>

我正在通过这个上传图片:-

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload"><br>
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

图像编号 1

查看图像编号 1,文件已成功上传。但是当我点击它查看它时,它显示在图像编号 2 中。

图像编号 2

约旦

根据文档,请求的主体(又名 your CURLOPT_POSTFIELDS)应该只包含[JPEG_DATA](也就是你的file_get_contents($uploadFile))。

但是你的样品中,你是给身体的数组'fileName''fileData'它甚至没有有效的身体属性的元数据的名称谷歌云存储API JSON

然后,Google Cloud Storage 将这个'fileName'数组解释'fileData'为实际的[JPEG_DATA],并将其呈现为一个 JPEG 文件,该文件以您总是看到的小方形图像的形式返回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

谷歌云平台架构

来自分类Dev

谷歌云平台计算引擎

来自分类Dev

谷歌云平台培训问题

来自分类Dev

谷歌云平台Kubernetes(GKE)的云位置

来自分类Dev

如何使用python将JSON上传到谷歌云存储

来自分类Dev

谷歌云平台网址解析

来自分类Dev

统一游戏的谷歌云平台

来自分类Dev

如何将文件从谷歌云存储加载到谷歌云功能

来自分类Dev

谷歌云存储库从使用测试平台的鼻子测试

来自分类Dev

谷歌云平台存储优化的实例有哪些?

来自分类Dev

通过python将JSON上传到谷歌云存储

来自分类Dev

如何使用kubectl重新部署谷歌云平台

来自分类Dev

如何在谷歌云平台上安装tensorflow

来自分类Dev

谷歌存储云上传文件使用PHP

来自分类Dev

Kubernetes 无法从谷歌云平台访问 grafana 和 prometheus

来自分类Dev

谷歌云平台无法识别 app.yaml 中的实例

来自分类Dev

所需资源不可用。谷歌云平台实例组

来自分类Dev

谷歌云平台上托管的 Aruba 域的 Https

来自分类Dev

如何将图片从客户端表单上传到Google云存储桶?

来自分类Dev

谷歌云存储验证

来自分类Dev

谷歌云存储

来自分类Dev

将图片从 expo RN 项目上传到谷歌云功能

来自分类Dev

从谷歌云存储桶中读取 JSON 文件内容

来自分类Dev

如何将现有的谷歌云平台基础设施转换/迁移到 terraform 或其他 IaC

来自分类Dev

从云函数访问谷歌云存储桶抛出 500 错误

来自分类Dev

如何通过应用引擎将图像上传到云存储?

来自分类Dev

从用户的网页直接上传文件到谷歌云存储

来自分类Dev

使用 npm start 时从云存储桶中下载谷歌云存储文件不断循环

来自分类Dev

将文件从 AWS s3 (SSE) 存储桶复制到谷歌云

Related 相关文章

热门标签

归档