Zend文件传输:上传单个图像时出现问题

时间:2011-06-07 16:05:57

标签: php zend-framework zend-file

我无法理解 - > isuploaded()的工作原理。我想上传六张图片以显示在我的索引页面上。现在的问题是,在我的更新功能中,如果我只上传一个或两个图像$ upload-> isUploaded()返回一个false值,但如果我决定更新所有六个,它会返回一个真值。我该如何处理这个问题?我错过了什么吗?

这是我的zend文件传输上传

$upload = new Zend_File_Transfer();
$upload->addValidator('Count', false, array('min' =>1, 'max' => 6)) 
               ->addValidator('Size', false, array('max' => '1Mb'))
               ->addValidator('ImageSize', false, array('minwidth' => 50,
                                                        'maxwidth' => 1000,
                                                        'minheight' => 50,
                                                        'maxheight' => 1000));

if ($upload->isUploaded()) $hasImage = true;

2 个答案:

答案 0 :(得分:2)

默认情况下,Zend猜测所有上传的文件都是无效的,即使其中一个提交的表单文件字段为空。 Zend文档建议通过在 isValid()之前调用receive()方法来覆盖此行为。 所以我不确定是否建议最佳解决方案,但它对我有用:

$upload = new Zend_File_Transfer();
$upload->setDestination( 'some your destination' );
if( $adapter->isValid( 'your form file field name' ) ){
    $adapter->receive( 'your form file field name' );
}

依此类推每个文件字段名称。如果需要,请将foreach换行。

答案 1 :(得分:1)

改为使用isValid()

if ($upload->isValid()) {
    // success!
} else {
    // failure!
}

一旦您知道上传传递了验证器,就开始处理图像。