上传时出现的Google Cloud Storage错误 - strpos():空针头

4
在将文件通过我的在应用引擎上运行的应用上传到Google Cloud Storage时,我收到以下PHP警告。
Warning: strpos(): Empty needle in /base/data/home/runtimes/php/sdk/google/appengine/ext/cloud_storage_streams/CloudStorageStreamWrapper.php on line 168

根据官方指南,我使用了<form action="<?php echo $upload_url?>,然后进行了基本的移动操作。

$gs_name = $_FILES["uploaded_files"]['tmp_name'];
move_uploaded_file($gs_name, "gs://my_bucket/new_file.ext");

有人知道这是为什么吗?能帮忙解决一下吗?

你能指定你正在使用的SDK版本并/或者发布文件中168行上下2-3行吗?我拉取1.8.8和1.8.9 SDK时,在第168行或附近没有看到strpos()。 - boombatower
2个回答

4

同样的问题...看起来是一个bug,在本地(最新)版本的SDK中不同的代码。 作为解决方法,我使用copy($_FILES["uploaded_files"]['tmp_name'], "gs://my_bucket/new_file.ext")+ unlink($_FILES["uploaded_files"]['tmp_name']),它有效 :)


1

“Needle”是PHP strpos函数中称呼第一个参数(在“草堆”中搜索“针”的意思)。$gs_name变量的值为空。原因可能是上传表单中的某些差异。

尝试回到通过HTTP POST直接将PHP上传到Google云存储并临时将PHP上传处理程序更改为:

var_dump($_FILES);

输出结果可能与预期不同,并且可能表明上述表单中哪部分有责任。

我已经完成了,结果如预期。这里没有问题。 - A.M.N.Bandara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接