2

これは私の最初の投稿です。この問題に関するいくつかの投稿を読みました。これまでのところ、私の非常に基本的な問題を解決したものはありません。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

前もって感謝します。

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 に答える