我将 Zend Framework 1.12 用于一些文件上传系统。并在一个表单中使用 Zend_File_Transfer_Adapter_Http,用于上传两个文件。这两个文件有两个表单元素。
$file1 = new Zend_Form_Element_File('file1');
// other options like setLabel etc.
$this->addElement($file1, 'file1');
$file2 = new Zend_Form_Element_File('file2');
// other options like setLabel etc.
$this->addElement($file2, 'file2');
我在我的控制器中处理上传过程,如下所示:
if ($request->isPost()) {
if ($form->isValid($request->getPost())) {
$adapter = new Zend_File_Transfer_Adapter_Http();
$adapter->setDestination($dirname);
$files = $adapter->getFileInfo();
foreach ($files as $file => $fileInfo) {
if (!$adapter->receive($file)) {
$messages = $adapter->getMessages();
echo implode("\n", $messages);
} else {
$location = $adapter->getFileName($file, true);
$filename = $adapter->getFileName($file, false);
// taking location and file names to save in database..
}
}
}
有了这些,我可以管理两个文件的上传。但我不知道如何获取使用特定 Zend_Form_Element_File 上传的文件的位置。例如,我需要知道哪个文件上传到 $file1(表单中的元素),我会将其位置保存到数据库中的一个表中,以及哪个文件上传到 $file2 并将其位置保存到另一个表中。