Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Formularz "gubi" dane przy uploadzie większego pliku
Forum PHP.pl > Forum > PHP > Frameworki
pgrzelka
Witam

Mam bardzo prosty kod,

przy uploadzie małych plików wszystko jest OK, przy pliku ok 10mb "znika" zawartość pola 'title' i wywala błąd 'to pole jest wymagane'

problem na lokalnym serwerze nie występuje, jedynie na produkcyjnym gdzie nie mam dostępu do logów błędów.

co może być przyczyną takiego błędu?

poniżej kod formularza, kodu kontrolera nie daje ponieważ podobnie jak formularz jest bardzo prosty (utworzenie formularza, walidacja)
  1. <?php
  2.  
  3. class Form_Repository_Kitpresse extends App_Form_Backend {
  4.  
  5. function init() {
  6. parent::init();
  7.  
  8. $this
  9. ->setAction($this->getView()->url())
  10. ->setMethod('post')
  11. ->setAttrib('id', 'adminForm')
  12. ;
  13.  
  14. $this->addElement('text', 'title', array(
  15. 'label' => 'pa_title',
  16. 'required' => true,
  17. 'class' => 'text-input'
  18. ));
  19.  
  20. $this->addElement('file', 'logo', array(
  21. 'label' => 'pa_logo',
  22. 'destination' => TMP_PATH,
  23. 'description' => 'pa_logo_description',
  24. 'required' => false
  25. ));
  26.  
  27. $this->addElement('file', 'file', array(
  28. 'label' => 'pa_file',
  29. 'destination' => TMP_PATH,
  30. 'description' => 'pa_file_description',
  31. 'required' => false
  32. ));
  33.  
  34. $this
  35. ->getElement('logo')
  36. ->addValidator(new Zend_Validate_File_FilesSize(1024*1024))
  37. ->addValidator(new Zend_Validate_File_Extension(array('jpg', 'jpeg', 'png', 'gif')))
  38. ;
  39. $this
  40. ->getElement('file')
  41. ->addValidator(new Zend_Validate_File_Extension(array('zip')))
  42. ;
  43.  
  44. $this->addElement('submit', 'submit', array(
  45. 'label' => 'pa_save',
  46. 'ignore' => true,
  47. 'class' => 'button',
  48. 'style' => 'display:none'
  49. ));
  50.  
  51. }
  52.  
  53. public function isValid($data) {
  54.  
  55. if (isset($_FILES['file'])) {
  56. $renameFilter = new Zend_Filter_File_Rename(uniqid().$_FILES['file']['name']);
  57. $this->getElement('file')->addFilter($renameFilter);
  58. }
  59. if (isset($_FILES['logo'])) {
  60. $renameFilter = new Zend_Filter_File_Rename(uniqid().$_FILES['logo']['name']);
  61. $this->getElement('logo')->addFilter($renameFilter);
  62. }
  63.  
  64. return parent::isValid($data);
  65. }
  66.  
  67. }
marcio
Cytat
1024*1024

To troche malo czy mi sie zdaje?
pgrzelka
Cytat(marcio @ 30.06.2012, 01:18:30 ) *
To troche malo czy mi sie zdaje?

w tym polu ma być mały obrazek, w drugim nie ma ograniczenia rozmiaru, pozatym nie wywala błędu przekroczenia rozmiaru więc to nie o to chodzi.
Pilsener
1. Włącz wyświetlanie wszystkich błędów, wyłącz JS, przekierowania etc.
2. Zrób standardowo:
  1. print_r($_POST);
  2. print_r($_FILES);


Jeśli tablice wyglądają OK to przetestuj standardowy kod: is_uplo.. i move_uplo.... - czyli sprawdź czy plik o takim rozmiarze jest uploadowany i można go zapisać. Jeśli działa kod "zwykły" to problem leży po stronie ZF, wtedy niestety pozostaje dochodzić linia po linii co jest nie tak.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.