これは私の最初の投稿です。この問題に関するいくつかの投稿を読みました。これまでのところ、私の非常に基本的な問題を解決したものはありません。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」:
Import Action
$_POST: array(1) { ["import"]=> string(11) "Import File" }
$_FILES: array(0) { }
指定された制限よりも大きいファイルを選択すると、$_POST が空になってしまうため、GAE が何らかの方法でファイルを処理していると思います。また、大きなファイルを選択すると、呼び出されたフォーム「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
前もって感謝します。