Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Грешка "File 'image.png' was illegally uploaded. This could be a possible attack"

Featured Replies

Здравейте.

Правя форма за upload на файл с ZF 1 и ми дава тази грешка която съм сложил в заглавието на темата. Къде и какво бъркам? По долу е кода който съм написал.

Контролер

class MaterialsController extends Custom_Base_IndexBase {

	public function init() {
        parent::init();
    }

	public function groupEditAction() {
        $userNamespace = new Zend_Session_Namespace('LoggedUser');

        if ($userNamespace->user == null) {
            $this->_helper->redirector->gotoSimpleAndExit('index', 'auth');
        }

        $id = $this->getRequest()->getParam("groupID", 0);
        $newItem = false;
        $errorFound = false;

        $materialMapper = new Application_Model_MaterialsMapper();

        $form = new Application_Form_Materials_EditGroup();

        if ($id) {
            $editMaterial = $materialMapper->fetchRow("materials.id = " . (int) $id);
            $data = array(
                'id' => $editMaterial->getId(),
                'material' => $editMaterial->getMaterial(),
                'key' => $editMaterial->getKey(),
                'description' => $editMaterial->getDescription(),
            );
            $form->adapt($data);
            $oneMaterial = reset($editMaterial);
        } else {
            $oneMaterial = $materialMapper->fetchNew();
            $maxKey = $materialMapper->getMaxKey();
            $data = array(
                'id' => $oneMaterial->getId(),
                'material' => $oneMaterial->getMaterial(),
                'key' => $maxKey,
                'description' => $oneMaterial->getDescription(),
            );
            $form->adapt($data);
            $newItem = true;
        }

        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getParams();

            $data = array(
                'id' => $postData['id'],
                'material' => $postData['material'],
                'key' => $postData['key'],
                'description' => $postData['description'],
            );

            if ($materialMapper->checkMaterialKey($postData['key'], $id)) {
                $form->getElement("key")->addError("Съществува такъв уникален код");
                $errorFound = true;
                $form->adapt($data);
            }

            if (!$errorFound && $form->isValid($postData)) {
                $postData = $form->getValues();
                $postData['groupID'] = null;

                $upload = new Zend_File_Transfer_Adapter_Http();
                
                foreach ($upload->getFileInfo() as $info) {
                    if (is_string($info['name']) && ($info['name'] != "")) {
                        $names = explode(".", $info['name']);
                        $fileExtension = $names[count($names) - 1];
                        $filename = md5(date('YmdHis') . rand(1, 1000));
                        
                        if ($fileExtension != "") {
                            $filename .= "." . $fileExtension;
                        }

                        $upload->removeFilter('Rename')->addFilter('Rename', APPLICATION_PATH . "/../public/uploads/" . $filename);

                        try {
                            if ($upload->receive($info['name'])) {
                                $postData['filename'] = $filename;
                                
                                $id = $materialMapper->save($postData);
                                
                                if ($id){
                                    $form->setSuccessDecorators();
                                    $form->setDescription('Saving successful...');
                                    
                                    $this->_helper->redirector('index', 'materials');
                                }
                                
                            } else {
                                //fail...
                                $form->setErrorDecorators();
                                $errorText = "";

                                if (count($upload->getMessages())) {
                                    foreach ($upload->getMessages() as $errorMsg) {
                                        if ($errorText != "") {
                                            $errorText .= "<br />";
                                        }

                                        $errorText .= $errorMsg;
                                    }

                                    $form->setDescription($errorText);
                                }
                                $form->addError("Upload Failed!");
                                $errorFound = true;
                            }
                        } catch (Zend_File_Transfer_Exception $e) {
                            $form->setErrorDecorators();
                            $form->setDescription($e->getMessage());
                        }
                    }
                }
            } else {
                $form->setErrorDecorators();
                $errorFound = true;
            }
        }

        if ($errorFound == true) {
            $form->adapt($data);
        }

        $this->view->form = $form;
    }
}

форма

class Application_Form_Materials_EditGroup extends Twitter_Bootstrap3_Form_Vertical {

    public function init() {
        $this->setMethod('post');
        $this->setAttrib('enctype', 'multipart/form-data');

        $this->addElement(
                'hidden', 'id'
        );

        $this->addElement(
                'text', 'key', array(
            'label' => $this->getView()->translate('UniqueCode') . ':*',
            'required' => true,
            'placeholder' => $this->getView()->translate('UniqueCode'),
            'filters' => array('StringTrim', 'StripTags'),
                )
        );

        $this->addElement(
                'text', 'material', array(
            'label' => $this->getView()->translate('MaterialGroup') . ':*',
            'required' => true,
            'placeholder' => $this->getView()->translate('MaterialGroup'),
            'filters' => array('StringTrim', 'StripTags'),
                )
        );

        $fileUploadValidator = new Zend_Validate_File_Upload();
        $fileUploadValidator->setMessages(array('fileUploadErrorNoFile' => $this->getView()->translate('FormErrorFileRequired')));

        $fileExtensionValidator = new Zend_Validate_File_Extension(array());
        $fileExtensionValidator->setExtension('jpg,png,gif,jpeg');
        $fileExtensionValidator->setMessages(array("fileExtensionFalse" => $this->getView()->translate('FormErrorFileHasFalseExtension'),));

        $this->addElement(
                'file', 'filename', array(
            'label' => $this->getView()->translate('Picture') . ':*',
            'required' => true,
                )
        );

        $this->getElement('filename')->addValidator($fileExtensionValidator, false);
        $this->getElement('filename')->addValidator($fileUploadValidator, true);

        $this->addElement('textarea', 'description', array(
            'label' => $this->getView()->translate('Description') . ':',
            'rows' => 4,
            'cols' => 90,
            'placeholder' => $this->getView()->translate('Description'),
        ));

        $this->addElement('submit', 'submit', array(
            'ignore' => true,
            'label' => $this->getView()->translate('Save'),
            'class' => 'wymupdate',
        ));

        $this->setDecorators(array(
            'FormElements',
            array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
            array('Description', array('placement' => 'prepend', 'class' => 'errors')),
            'Form'
        ));
    }

    public function adapt($data) {
        $this->getElement('id')->setValue($data['id']);
        $this->getElement('material')->setValue($data['material']);
        $this->getElement('key')->setValue($data['key']);
        $this->getElement('description')->setValue($data['description']);

        return $this;
    }

    public function setErrorDecorators() {
        $this->setDecorators(array(
            'FormElements',
            array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
            array('Description', array('placement' => 'prepend', 'class' => 'errors')),
            'Form'
        ));

        return $this;
    }

    public function setSuccessDecorators() {
        $this->setDecorators(array(
            'FormElements',
            array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
            array('Description', array('placement' => 'prepend', 'class' => 'success')),
            'Form'
        ));

        return $this;
    }

}

 

  • Автор
преди 9 минути, Ken написа:

Е най-нахрая разбрах къде бъркам.

Сега вече работи. Благодаря.

Редактирано от spas666 (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.