这是我的第一篇文章。我已经阅读了几个关于这个问题的帖子。到目前为止,没有解决我的基本问题。我必须遗漏一些关于php.ini或app.yaml的内容,或者我真的必须在Google云端存储中创建一个“桶”,只是为了在一个页面上选择一个文件并将其传递给另一个?我被卡住了。任何帮助将不胜感激。
调用表单',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”] =&gt; string(11)“Import File”}
$ _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
提前谢谢。
答案 0 :(得分:0)
您应该使用CloudStorageTools::createUploadUrl()
作为表单的“操作”属性:https://developers.google.com/appengine/docs/php/googlestorage/#direct_uploads_to_google_cloud_storage_via_http_post