【问题标题】:Zend File Transfer: Problem when uploading a single imageZend 文件传输:上传单个图像时出现问题
【发布时间】:2011-06-07 16:05:57
【问题描述】:

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

这是我的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;

【问题讨论】:

    标签: php zend-framework zend-file


    【解决方案1】:

    默认情况下 Zend 猜测所有上传的文件都是无效的,即使只有一个提交的表单文件字段是空的。 Zend 文档建议通过调用 isValid() 方法 before 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。

    【讨论】:

      【解决方案2】:

      请改用isValid()。

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

      一旦您知道您的上传通过了验证器,然后开始处理图像。

      【讨论】:

      • @Niklas Yup 也尝试过。但它不起作用。如果我不上传 6 张图片,就无法将 $hasImage 设置为 true。
      • @Varun $upload->isValid() 正在返回 false?
      • @Nklas 是的!因为它没有将 $hasImage 设置为 true。但是是的,如果我将它们全部上传,它会将其设置为 true。
      • @Varun 你能把剩下的代码贴出来吗,因为如果它没有验证它还有其他问题。
      • @Niklas 根据文档“sUploaded($files = null):此方法将检查用户是否已上传指定的文件。当您定义了一个或多个时,这很有用可选文件。当没有指定文件时,将检查所有文件。"可选文件是什么意思?如何定义可选文件?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      相关资源
      最近更新 更多