来自存储器的appengine std PHP流包装器

来自存储器的appengine std PHP流包装器,php,google-app-engine,storage,phpspreadsheet,Php,Google App Engine,Storage,Phpspreadsheet,我正在用一个表单编写一个php网页,用户可以在其中上传一个excel文件 我需要得到这个文件并通过SpreadsheetReader PHP库读取它 在appengine中,无法在文件系统上写入,所以我通过streamwrapper将此文件发送到云存储桶(工作正常) 但我不知道如何从存储文件中读取对象并加载到电子表格阅读器上 首先,存储中的流包装器不起作用,下面是我的部分代码: $client = new StorageClient(['projectId' => $projectId,

我正在用一个表单编写一个php网页,用户可以在其中上传一个excel文件

我需要得到这个文件并通过SpreadsheetReader PHP库读取它

在appengine中,无法在文件系统上写入,所以我通过streamwrapper将此文件发送到云存储桶(工作正常)

但我不知道如何从存储文件中读取对象并加载到电子表格阅读器上

首先,存储中的流包装器不起作用,下面是我的部分代码:

$client = new StorageClient(['projectId' => $projectId,

                                ]);
$client->registerStreamWrapper();
$contents = file_get_contents($location);
返回此错误: “PHP致命错误:未捕获的InvalidArgumentException:json_编码错误:格式错误的UTF-8字符,可能编码不正确”

2) 如何创建类似文件的对象来执行此操作:

$reader = new SpreadsheetReader($file);
$sheets = $reader->Sheets();
多谢各位

$client = new StorageClient(['projectId' => $projectId,

                                ]);
$client->registerStreamWrapper();
$contents = file_get_contents($location);
返回此错误:“PHP致命错误:未捕获 InvalidArgumentException:json_编码错误:格式错误的UTF-8 字符,可能编码不正确”

您应该在StorageClient中提供JSON格式的密钥文件


请参见

我知道您正在通过streamwrapper将文件写入云存储桶

然后尝试使用以下命令读取文件:

 $contents = file_get_contents($location);
根据官方文件

但是,如果应用程序需要读取文件,并且这些文件是静态的, 您可以选择使用PHP读取应用程序上载的静态文件 文件系统功能,如文件获取内容

例如:

$fileContents=file\u get\u contents($filePath)

其中指定的路径必须是相对于脚本的路径 访问它们

当需要时,必须上载应用程序子目录中的一个或多个文件 您将应用部署到应用引擎,并且必须配置app.yaml 文件,以便您的应用程序可以访问这些文件。有关完整的详细信息,请参见PHP 5使用app.yaml进行应用程序配置


我认为您希望从GCS而不是从应用程序子目录读取文件。

谢谢!我可以写,为什么需要密钥文件来读取?array$keyFile服务帐户凭据的内容*.json文件从Google开发者控制台检索。*示例:
json\u解码(file\u get\u contents($path),true)
。感谢您的回复。现在可以了,但是接收空内容。你有什么想法吗?