CLI не нашел приложение «bert-serve-start».
Загляните в папку Python36 / Scripts. Приложение bert-serve-start должно быть там (кроме «pip» и т.
Откройте CLI в этой папке и попробуйте снова.
На самом деле есть еще более простой способ сделать это. Все, что вам нужно сделать, это передать false в качестве второго параметра для метода getFileName объекта Zend_File_Transfer_Adapter_Http. Затем вы можете переименовать файл, добавив к нему идентификатор пользователя, или проанализировать имя файла, чтобы получить расширение, если хотите.
// upload a file called myimage.jpg from the formfield named "image".
$uploaded_file = new Zend_File_Transfer_Adapter_Http();
$uploaded_file->setDestination('/your/path/');
try {
// upload the file
$uploaded_file->receive();
} catch (Zend_File_Transfer_Exception $e) {
$e->getMessage();
}
$file_name = $uploaded_file->getFileName('image', false);
// this outputs "myimage.jpg"
$file_path = $uploaded_file->getFileName('image');
// this outputs "/your/path/myimage.jpg"
// now use the above information to rename the file
Мне удалось сделать это путем устанавливания фильтра. Обратите внимание, что я не устанавливал целевой путь.
$adapter= new Zend_File_Transfer_Adapter_Http();
$adapter->addFilter('Rename',array('target' => WWW_ROOT . '/photos/' . $this->memberId . '.jpg'));
$adapter->receive();
Согласно документации, Вы не должны помещать путь в место назначения
существует лучший и более безопасный путь с платформой зенда...
создайте класс помощника для получения расширения файла..
класс ImageUpload {
public function getExtension ($name)
{
if($name){
foreach ($name as $val){
$fname=$val['name'];
}
$exts = split("[/\\.]", $fname) ;
$n = count($exts)-1;
$exts = $exts[$n];
return $exts;
}
}
}
в контроллере:
класс ProfileController расширяет Zend_Controller_Action {функция indexAction () {$this-> представление-> заголовок = "Профиль"; $this-> представление-> bodyCopy ="
Заполните эту форму.
"; $form = new ImgForm();
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
$adapter = new Zend_File_Transfer_Adapter_Http();
$adapter->setDestination('images/users/big');
// getting extension
$filename = $adapter->getFileInfo();
$uhelper = new ImageUpload; // cals for help to get file extension
$extension = $uhelper->getExtension($filename); // got extension
// success -- file handled
//rename
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
$adapter->addFilter('Rename', array('target' => 'images/users/big/'.$identity->id.'.'.$extension,
'overwrite' => true));
if (!$adapter->receive()) {
$form->addError($adapter->getMessages());
}
} else {
$form->populate($formData);
}
}
$this->view->form = $form;
}
когда Ваша форма должна быть:
parent::__construct($options);
$this->setName('upload');
$this->setAttrib('enctype', 'multipart/form-data');
$file = new Zend_Form_Element_File('file');
$file->setLabel('File')
->addValidator('Count', false, 1) // ensure only 1 file
->addValidator('Size', false, 102400) // limit to 100K
->addValidator('Extension' ,false, 'jpg,png,gif') // only JPEG, PNG, and GIFs
->setRequired(true);
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Upload');
$this->addElements(array($file, $submit));
}
}
Весело провести время
Я должен был прервать $ _FILES и внести изменение прежде, чем выполнить вызов к адаптеру
if(isset($_FILES['file1'])){
$ext = pathinfo($_FILES['file1']['name']);
$_FILES['file1']['name'] = 'image_'. $userid .'.'.$ext['extension'];
}
$adapter = new Zend_File_Transfer_Adapter_Http();
Я уверен, что существует лучший путь, и я не знаю, почему фильтр не работает, я попробовал все, чтобы заставить его работать. У меня был крайний срок и таким образом, вышеупомянутый код пошел производство LOL
Надежда это помогает кому-то
Eric
public function getExtension($name){
$names= explode(".", $name);
return $names[count($names)-1];
}