Ahoj, neměl někdy někdo problém s klasickým uploadem souborů přes na hostingu od Wedosu? Na localhostu mě vše proběhne OK, ale když nahraji aplikaci na web, tak mě upload přestane fungovat, i když odesílání trvá úměrně dlouho nahrávaným souborům tak to stejně vypadá jako by se nic nenahrálo, je to stejné jako kdybych do formuláře nic nevyplnil pokud tam mám RULE že upload musí být vyplněn napíše mi to chybu že není vyplněn. Když RULE odstraním a zkusím přímo získat třeba velikost souboru nebo jeho jméno proměná je prázdná. Zkoušel jsem i addon MultipleFileUpload pro nette a mám stejný výsledek. Ještě jednou opakuji že na localhostu mi všechno funguje perfektně. Nemá někdo podobný problém?
Práva nastavené mám, ale o ty tu asi vůbec nejde už proměná kterou dostávám od formuláře je prázdná takže s tím souborem nemůžu nic dělat ani ho někam uložit. Samozřejmě jsem se díval i do logů jestli tam není chyba ale jsou prázdné...
Zde je můj presenter:
Kód:
protected function createComponentAddPlaceForm()
{
$types = array(
'Restaurace' => array(
'1' => 'Kavárna',
'2' => 'Pivnice',
'3' => 'Vinárna',
'4' => 'Restaurace',
'5' => 'Pizzerie',
'6' => 'Bar'
),
'Ubytování' => array(
'7' => 'Hotel',
'8' => 'Penzion'
));
$form = new Form;
$form->addText('name', "Název:")
->addRule(Form::MIN_LENGTH, 'Název musí mít minimálně 3 znaky.', 3)
->addRule(Form::MAX_LENGTH, 'Název může být maximálně 30 znaků dlouhý.', 30)
->addRule(Form::FILLED, 'Název není vyplněno.');
$form->addSelect('sub_type', 'Typ:', $types)
->setPrompt('Zvolte typ')
->addRule(Form::FILLED, 'Není zadán typ.');
$form->addTextArea('description', 'Popis(max. 10000 znaků):')
->addRule(Form::MIN_LENGTH, 'Popis musí mít minimálně 100 znaků.', 100)
->addRule(Form::MAX_LENGTH, 'Popis je příliš dlouhý', 10000)
->addRule(Form::FILLED, 'Název není vyplněno.');
$form->addText('adress1', "Ulice:")
->addRule(Form::MIN_LENGTH, 'Název ulice musí mít minimálně 3 znaky.', 3)
->addRule(Form::MAX_LENGTH, 'Název ulice může být maximálně 30 znaků dlouhý.', 30)
->addRule(Form::FILLED, 'Není vyplněna ulice.');
$form->addText('adress2', "Číslo popisné:")
->addRule(Form::MAX_LENGTH, 'Číslo popisné může být maximálně 30 znaků dlouhé.', 30)
->addRule(Form::FILLED, 'Není vyplněno číslo popisné.');
$form->addText('city', "Obec:")
->addRule(Form::MIN_LENGTH, 'Název obce musí mít minimálně 2 znaky.', 2)
->addRule(Form::MAX_LENGTH, 'Název obce může být maximálně 30 znaků dlouhý.', 30)
->addRule(Form::FILLED, 'Není vyplněn název obce.');
$form->addText('psc', "PSČ:")
->addRule(Form::MIN_LENGTH, 'PSČ musí mít minimálně 3 znaky.', 3)
->addRule(Form::MAX_LENGTH, 'PSČ může být maximálně 10 znaků dlouhé.', 10)
->addRule(Form::FILLED, 'Není vyplněno PSČ.');
$form->addText('www', "WWW:")
->addRule(Form::MAX_LENGTH, 'WWW adresa může být maximálně 10 znaků dlouhá.', 30);
$form->addText('mail', "Mail:")
->addRule(Form::FILLED, 'Mail není vyplněn.')
->addRule(Form::EMAIL, 'Mail není ve správném formátu.');
$form->addText('tel1', "Tel 1:")
->addRule(Form::MAX_LENGTH, 'Telefon 1 může být maximálně 10 znaků dlouhý.', 10);
$form->addText('tel2', "Tel 2:")
->addRule(Form::MAX_LENGTH, 'Telefon 2 může být maximálně 10 znaků dlouhý.', 10);
$form->addUpload('thumb', 'Náhledový obrázek:')
->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 5 MB.', 5000 * 1024 /* v bytech */);
$form->addUpload('img1', 'Obrázek 1:')
->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost obrázku 1 je 5 MB.', 5000 * 1024 /* v bytech */);
$form->addUpload('img2', 'Obrázek 2:')
->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost obrázku 2 je 5 MB.', 5000 * 1024 /* v bytech */);
$form->addUpload('img3', 'Obrázek 3:')
->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost obrázku 3 je 5 MB.', 5000 * 1024 /* v bytech */);
$form->addSubmit('add', 'Přidat objekt');
$form->onSuccess[] = callback($this, 'AddPlaceFormSubmitted');
return $form;
}
public function AddPlaceFormSubmitted(Nette\Application\UI\Form $form){
$values = $form->getValues();
$path = $this->context->params['appDir']."/img/";
$img = Array();
$file = $values["thumb"];
$info = @getimagesize($file);
if ($file->isOk() && !(empty($info))) {
$name = $path . md5($file->getName() . rand()) . time() . $file->getName();
$name_s = $path . md5($file->getName() . rand()) . time() . "small" . $file->getName();
$file->move($name);
$image = Image::fromFile($name);
$image->resize(NULL, 117);
$image->save($name_s);
$img[] = $name;
}
$file = $values["img1"];
$info = @getimagesize($file);
if ($file->isOk() && !(empty($info))) {
$name = $path . md5($file->getName() . rand()) . time() . $file->getName();
$file->move($name);
$img[] = $name;
}
$file = $values["img2"];
$info = @getimagesize($file);
if ($file->isOk() && !(empty($info))) {
$name = $path . md5($file->getName() . rand()) . time() . $file->getName();
$file->move($name);
$img[] = $name;
}
$file = $values["img3"];
$info = @getimagesize($file);
if ($file->isOk() && !(empty($info))) {
$name = $path . md5($file->getName() . rand()) . time() . $file->getName();
$file->move($name);
$img[] = $name;
}
$this->model->AddPlace($values, $this->getUser()->getId(), $img);
$this->flashMessage($name, 'success');
$this->redirect('Profile:');
}
}
Ten error 4 je tam jen proto že z možných deseti polí pro upload mám vyplněné jen dvě, ale zajímavější je ten error u prvních dvou souborů které skutečně uploaduji error 6 NO_TEMP_DIR, otázka je jak to opravit...