Google App Engine空表单上传字段提交问题

时间:2014-02-05 07:45:24

标签: php google-app-engine file-upload google-cloud-storage

我正在使用Google云存储制作我的第一个PHP Google App Engine应用程序。

我的表单中包含很少的上传字段。一旦我使用一个字段上传图像并保持其余字段为空,就会在我的云存储桶中创建一个垃圾文件,用于那些我没有上传任何图像的字段。这就是我的表单的样子

<form method="post" class="admin" action="<?PHP echo $postUrl; ?>" enctype="multipart/form-data">
<input type='file' name='image1'>
<input type='file' name='image2'>

<input type='submit' name='submitBttn' value='submit'>
</form>

我使用$postUrl方法获取CloudStorageTools::createUploadUrl。哪个工作正常,一旦提交表单,var_dump($_FILES)会在我上传的字段中显示值,而空值则为空值,错误代码为4,表示不使用该字段上传文件。在我的云存储桶中如何制作包含未知图像的垃圾文件。

如何阻止这种情况发生? 如果无法停止,如何从存储桶中删除它? ($ _FILES ['image2'] ['tmp_name']和$ _FILES ['image2'] ['name']是空的,所以我不知道如何在不知道图像名称的情况下获取publiUrl。

谢谢!

1 个答案:

答案 0 :(得分:2)

看起来像两个合法的错误:1)如果没有移动,所有临时上传的文件应该被取消链接(删除)(默认机制不起作用,因为它使用的系统解除链接不处理gs://因为在用户空间中定义) ,2)在PHP中,空文件不会写入临时目录,但云存储代理默认创建它们,因此应更新App Engine PHP运行时以删除它们。

根据文档http://www.php.net/manual/en/features.file-upload.post-method.php

The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.

继续修复并希望在下一个版本中使用它。