【问题标题】:php google app engine uploading files on local dev serverphp google app engine 在本地开发服务器上上传文件
【发布时间】:2014-03-05 12:19:09
【问题描述】:

在我的本地 google 应用引擎服务器 (1.9.0) (PHP 5.4.6-1ubuntu1.7) 上,我总是将 message/external-body 作为上传文件的 mime 类型,而 tmp_name 没有 gs:// 包装器正如它应该的那样。例如:

[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>

【问题讨论】:

    标签: php google-app-engine


    【解决方案1】:

    我们正在开发一个 php-cgi 二进制文件以与 linux SDK 一起分发,以解决这个问题。

    在此之前,如果您可以在 mac 或 windows 上进行测试,它将在开发环境中正常工作。

    【讨论】:

    • 两年过去了,当前版本是1.9.35,问题依旧。有更新吗?
    • 不完全是我所希望的开箱即用的谷歌产品解决方案。无论如何,我已经切换到在 Windows 下运行服务器。谢谢。
    • 我在运行 dev_appserver.py 时使用的是已编译的扩展,但我仍然看到这种行为,有什么线索吗?
    猜你喜欢
    • 2011-11-10
    • 2016-12-18
    • 2013-09-09
    • 2023-04-10
    • 2014-12-10
    • 1970-01-01
    • 2019-05-21
    • 2018-06-09
    • 1970-01-01
    相关资源
    最近更新 更多