Zend Framework - обработчик загрузки Zend_File_Transfer
При использовании чего-то подобного в Zend:
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->setDestination('/some/directory');
$upload->addValidator(x)
->addValidator(y);
$upload->receive();
Загруженный файл сначала загружается в каталог tmp, проверяется и затем перемещается в каталог "some / directory", или он напрямую сохраняется в каталоге setDestination? Если первое, мне кажется, что это делает то же самое, что и "move_uploaded_file" после того, как он был загружен в каталог tmp.
Предлагает ли ZF некоторый тип обработчика потока http для записи файла в определенный каталог изначально? то есть что-то похожее на nodejs или django?
1 ответ
Zend_File_Transfer_Adapter_Http
использование move_uploaded_file
после проверки назначенными вами валидаторами.
Посмотри здесь:
public function receive($files = null)
{
if (!$this->isValid($files)) {
return false;
}
... some code ...
if (!move_uploaded_file($content['tmp_name'], $filename)) {
if ($content['options']['ignoreNoFile']) {
$this->_files[$file]['received'] = true;
$this->_files[$file]['filtered'] = true;
continue;
}
$this->_files[$file]['received'] = false;
return false;
}
Специальных механизмов нет, это просто оболочка над стандартной функцией
Для прямой загрузки в ваш каталог вы можете использовать что-то вроде
$input = fopen("php://input", "r");
$file = fopen("/my/directory/filename.eee", "w");
while ($data = fread($input, 1024)){
fwrite($file, $data);
}
но похоже в ZF ничего подобного нет