2

这是我的第 1 篇文章。我已经阅读了几篇关于这个问题的帖子。到目前为止,还没有解决我非常基本的问题。我一定遗漏了一些关于 php.ini 或 app.yaml 的内容,或者我真的必须在 Google Cloud Storage 中创建一个“存储桶”才能在一个页面上选择一个文件并将其传递给另一个页面?我被困住了。任何帮助将不胜感激。

调用表格,'import.php':

<form action="import_action.php" method="POST" enctype="multipart/form-data">
<table>
    <tr><td><input type="file" name="import_file" size="2000000"></td></tr>
    <tr><td><input type="submit" name="import" value="Import File"></td></tr>
</table>
</form>

...选择了一个文件。按下“导入文件”按钮。

POST 调用的表单,“import_action.php”:

<html>
  <head>Import Action</head>
  <table>
    <tr><td>$_POST: <? var_dump($_POST); ?></td></tr>
    <tr><td>$_FILES: <? var_dump($_FILES); ?></td></tr>
  </table>
</html>

输出,“import_action.php”:

导入操作
$_POST: array(1) { ["import"]=> string(11) "导入文件" }
$_FILES: array(0) { }

我相信 GAE 正在以某种方式处理该文件,因为当我选择一个大于规定限制的文件时,$_POST 被弄脏并为空。此外,当我选择一个大文件时,显示调用的表单“import_action.php”会出现明显的时间延迟。

在其他平台上,这只是工作。我没有设置的配置选项是什么?

这是 php.ini,在 GAE 中是一组覆盖:

output_buffering = on
google_app_engine.enable_functions = "phpversion, phpinfo"
track_vars = true
register_globals = true
enable_post_data_reading = true
file_uploads = on
upload_max_filesize = 20M
post_max_size = 30M

先感谢您。

4

1 回答 1

0

您应该使用CloudStorageTools::createUploadUrl()表单的“操作”属性:https ://developers.google.com/appengine/docs/php/googlestorage/#direct_uploads_to_google_cloud_storage_via_http_post

于 2014-03-13T01:46:57.410 回答