【发布时间】:2011-07-17 22:02:21
【问题描述】:
我正在尝试使用 Zend 将文件上传到 Amazon S3。一切正常,除了我无法访问 POST[] 数组中的文件。
无论如何我可以轻松地从表单中获取文件。所有文档示例仅向您展示如何在将文件上传到本地文件系统时执行此操作。
【问题讨论】:
标签: php zend-framework forms amazon-s3
我正在尝试使用 Zend 将文件上传到 Amazon S3。一切正常,除了我无法访问 POST[] 数组中的文件。
无论如何我可以轻松地从表单中获取文件。所有文档示例仅向您展示如何在将文件上传到本地文件系统时执行此操作。
【问题讨论】:
标签: php zend-framework forms amazon-s3
如果您从表单将文件上传到 PHP 脚本,然后打算将该文件上传到 S3,那么您正在寻找错误的超全局。
文件上传在$_FILES,而不是$_POST。查看the PHP documentation on handling file uploads 了解如何最好地使用它。
【讨论】:
$_FILES,其中$_FILES['form_element_name']['tmp_name']是PHP放置上传数据的临时文件的名称。这就是您要发送到 S3 的文件。
一旦你掌握了窍门,它就很简单了。
$form->image->setDestination('path/to/images');
if($form->isValid($_POST)){
if($form->image->isUploaded()){
if($form->image->receive()){
// For example, get the filename of the upload
$filename = $form->image->getFilename();
}
} else {
// Not uploaded
}
} else {
// Not valid
}
请注意,在我的示例中,image 是上传元素的名称。
【讨论】:
对上面的小修正应该是getFileName,大写N。
$filename = $form->image->getFileName();
【讨论】: