【问题标题】:zend file transfer checking fileszend 文件传输检查文件
【发布时间】:2013-12-18 20:14:16
【问题描述】:

我想检查文件是否已上传。如果不是,我不希望我的表单自动更新此字段。如果已上传,我希望将此文件上传到我的数据库中。这是我的控制器中的代码。在我的表单中,我有一个 Zend_Form_Element_File('Document')

$upload = new Zend_File_Transfer();
$data['document'] = $upload->getFileInfo();
foreach ($data['document'] as $file => $info) {
  if ($upload->isUploaded($file)) {
  }
  if (!$upload->isUploaded($file)) {
  }
  // ...?
}

谢谢

【问题讨论】:

  • 您只想知道文件是否上传正确?
  • 不,我的 $data['document'] = blabla.txt,上传文件后,这个 blabla.txt 将被新文件替换。但如果没有,我想保留 blabla.txt。所以我想检查文件是否没有上传我需要如何保存我的 blabla.txt。您可以将其视为一个 editAction
  • 如果文件没有上传,那么旧文件会在那里,不会被替换吧??
  • 有趣的是它将被替换。 :S
  • 自己得到了答案: if ($data['document'] == null) { unset($data['document']); } 如果没有任何内容添加到表单中。您只需要检查数组是否为空。如果 $data['document'] == null 那么你必须取消设置这个 $data['document'] 这样它就不会被 null 替换并且旧文件将保留在这个数组中。

标签: php zend-framework file-transfer


【解决方案1】:

来自 Zend_Form_Element_File 类的 Zend documentation,添加了 cmets:

// check whether a file has been uploaded
if (!$form->foo->receive()) {
    print "Error receiving the file";
}

// get the file name
$location = $form->foo->getFileName();

【讨论】:

    【解决方案2】:

    我自己得到了答案:

    if ($data['document'] == null)
    {
        unset($data['document']);
    }
    

    如果在编辑表单时没有添加任何内容。您只需要检查数组是否为空。如果 $data['document'] == null 那么你必须取消设置这个 $data['document'] 所以它不会被 null 替换并且旧文件仍然是

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2017-03-04
      相关资源
      最近更新 更多