Na wstepie kawalki kodu:
Tworzenie formularza
Kod
'img' => array(
'file',
array(
'label' => 'Obrazek',
'Destination' => 'obrazki/'
)
),
'plik' => array(
'file',
array(
'label' => 'Gra',
'Destination' => 'gry/'
)
),
'sciezka' => array(
'text',
array(
'label' => 'lub podaj lokalizacje',
'required' => 'false'
)
),
'file',
array(
'label' => 'Obrazek',
'Destination' => 'obrazki/'
)
),
'plik' => array(
'file',
array(
'label' => 'Gra',
'Destination' => 'gry/'
)
),
'sciezka' => array(
'text',
array(
'label' => 'lub podaj lokalizacje',
'required' => 'false'
)
),
Dla objasnienia - kazdy rekord ma plik obrazka (img) oraz dodatkowy plik(dodawany z dysku, wtedy wykorzystane jest pole 'plik', lub z lokalizacji sieciowej - wtedy 'sciezka')
Dodawanie:
Kod
$adapter=$form->img->getTransferAdapter();
$file = substr($adapter->getFileName('img'),strlen('obrazki/'));
if($adapter->receive()){
$dane['img']=$file;
}
$adapter1=$form->plik->getTransferAdapter();
$file=substr($adapter1->getFileName('plik'),strlen('gry/'));
if($adapter1->receive()){
$this->view->chu="niechu";
$sciezka=$file;
}
else { //jesli nie udalo sie przeslac
$sciezka=$this->_request->getPost('sciezka');
$this->view->chu="chu";
}
$dane['path']=$sciezka;
$file = substr($adapter->getFileName('img'),strlen('obrazki/'));
if($adapter->receive()){
$dane['img']=$file;
}
$adapter1=$form->plik->getTransferAdapter();
$file=substr($adapter1->getFileName('plik'),strlen('gry/'));
if($adapter1->receive()){
$this->view->chu="niechu";
$sciezka=$file;
}
else { //jesli nie udalo sie przeslac
$sciezka=$this->_request->getPost('sciezka');
$this->view->chu="chu";
}
$dane['path']=$sciezka;
Zmienna 'chu' - tylko do testow, dzieki niej wyswietlam sobie na stronie, ktora czesc zostala wykonana. Jaki jest problem? Po uzupelnieniu formularza i zatwierdzeniu otrzymuje:
Cytat
The file 'img' was illegal uploaded, possible attack
Atak sam na siebie?

Dodam, ze na stronie wyswietla sie po wykonaniu, procz powyzszego ostrzezenia rowniez 'niechu' - co oznacza, ze $adapter1->receive() zwrocilo 0.