いくつかのファイル アップロード システムに Zend Framework 1.12 を使用しています。そして、フォームで Zend_File_Transfer_Adapter_Http を使用して、2 つのファイルをアップロードします。これら 2 つのファイルには 2 つのフォーム要素があります。
$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..
}
}
}
これらを使用して、2 つのファイルのアップロードを管理できます。しかし、特定の Zend_Form_Element_File でアップロードされたファイルの場所を取得する方法がわかりません。たとえば、どのファイルが $file1 (フォームの要素) にアップロードされているかを知る必要があり、その場所をデータベースのテーブルに保存し、どのファイルが $file2 にアップロードされ、その場所を別のテーブルに保存します。