在我的本地Google应用引擎服务器(1.9.0)(PHP 5.4.6-1ubuntu1.7)上,我总是将message/external-body
作为上传文件的mime类型,tmp_name
没有gs ://包装器,因为它应该。 E.g:
[type] => message/external-body [tmp_name] => /tmp/phpFbTDzF
它应该在哪里(如在制作应用引擎上):
[type] => text/plain [tmp_name] => gs://coscms-bucket/L2FwcGhvc3Rpbmcy...
文件是本地上传的,但是当你没有得到正确的文件名(gs://)时,很难对它进行测试。
部署后,我会为上传的文件获取正确的mime类型。这是我的测试脚本:
<?php
use google\appengine\api\cloud_storage\CloudStorageTools;
$bucket = 'coscms-bucket';
if (!empty($_FILES)) {
print_r($_FILES);
}
$options = [ 'gs_bucket_name' => $bucket ];
$upload_url = CloudStorageTools::createUploadUrl('/test.php', $options);
?>
<form action="<?php echo $upload_url?>" enctype="multipart/form-data" method="post" accept-charset="utf-8">
Files to upload: <br>
<input type="file" name="uploaded_files" size="40">
<input type="submit" value="Send">
</form>
答案 0 :(得分:2)
我们正在使用一个php-cgi二进制文件来分发linux SDK来解决这个问题。
在此之前,如果您可以在Mac或Windows上进行测试,它将在开发环境中正常运行。