Можно ли задать имя, тип, размер для Zend File Transfer Adapter? - PullRequest
2 голосов
/ 07 июля 2011

Я хочу установить name, type, size для объекта Zend_File_Transfer_Adapter_Http вручную, возможно ли это?

1 Ответ

1 голос
/ 31 марта 2014

Абсолютно. Но в вашем утверждении есть некоторая путаница. Я предполагаю, что вы хотите ограничить тип и размер загружаемого файла, потому что в противном случае вы могли бы просто создать файл с именем «sampleFile.ext» и заполнить содержимое пробелами для определенного размера, я ничего не вижу хотя полезно.

Начать с нового объекта:

$uploaded_file = new Zend_File_Transfer_Adapter_Http();

Валидаторы размера файла:

// Set a file size with 20000 bytes
    $upload->addValidator('Size', false, 20000);

    // Set a file size with 20 bytes minimum and 20000 bytes maximum
    $upload->addValidator('Size', false, array('min' => 20, 'max' => 20000));

    // Set a file size with 20 bytes minimum and 20000 bytes maximum and
    // a file count in one step
    $upload->setValidators(array(
            'Size'  => array('min' => 20, 'max' => 20000),
            'Count' => array('min' => 1, 'max' => 3),
    ));

Валидаторы расширений:

// Limit the extensions to jpg and png files
    $upload->addValidator('Extension', false, 'jpg,png');

    // Limit the extensions to jpg and png files but use array notation
    $upload->addValidator('Extension', false, array('jpg', 'png'));

    // Check case sensitive
    $upload->addValidator('Extension', false, array('mo', 'png', 'case' => true));
    if (!$upload->isValid('C:\temp\myfile.MO')) {
        print 'Not valid because MO and mo do not match with case sensitivity;';
    }

Исключить валидаторы расширений файлов:

// Do not allow files with extension php or exe
    $upload->addValidator('ExcludeExtension', false, 'php,exe');

    // Do not allow files with extension php or exe, but use array notation
    $upload->addValidator('ExcludeExtension', false, array('php', 'exe'));

    // Check in a case-sensitive fashion
    $upload->addValidator('ExcludeExtension',
            false,
            array('php', 'exe', 'case' => true));
    $upload->addValidator('ExcludeExtension',
            false,
            array('php', 'exe', 'case' => true));

Чтобы изменить имя файла, используйте фильтр: Zend_File_Transfer_Http Как установить имя загруженного файла

Официальная ссылка для валидаторов файлов: http://framework.zend.com/manual/1.11/en/zend.file.transfer.validators.html#zend.file.transfer.validators.extension

...