addMultiUpload neodešle správný soubor
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- doby
- Člen | 8
Dobrý den,
snažím se použít addMultiUpload, aby se soubory odeslali na email. Odeslání proběhne, ovšem na email mi přijde soubor s názvem noname a bez žádné koncovky. Zkoušel jsem hledat na internetu, ale bohužel jsem nic nenašel…
protected function createComponentCvForm()
{
$form = new Form;
$form->addText('name', 'Jméno:')
->addRule(Form::FILLED, 'Zadejte jméno');
$form->addText('email', 'Email:')
->addRule(Form::FILLED, 'Zadejte email')
->addRule(Form::EMAIL, 'Email nemá správný formát');
$form->addMultiUpload('files', 'Soubory')
->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 1 MB.', 1000 * 1024 /* v bytech */)
->addRule(Form::FILLED, 'Vyberte soubor...');
$form->addCheckbox('agree', 'Souhlasím s podmínkami ochrany osobních údajů.')
->addRule(Form::EQUAL, 'Je potřeba souhlasit s podmínkami', TRUE);
$form->addSubmit('send', 'Odeslat');
$form->onSuccess[] = $this->processCvForm;
return $form;
}
/**
* Process contact form, send message
* @param Form
*/
public function processCvForm(Form $form)
{
$values = $form->getValues(TRUE);
$mail = new Message;
$mail->addTo('dobrovolny.michal@gmail.com')
->setFrom($values['email'])
->setSubject('CV - '.$values['name'])
->setBody('Zpráva z webu ip-w.cz')
->addAttachment($values['files']);
$mailer = new SendmailMailer;
$mailer->send($mail);
$this->flashMessage('Životopis byl odeslán.');
$this->redirect('this');
}
- David Matějka
- Moderator | 6445
addAttachment
chce jako prvni parametr cestu k souboru.
A vysledek MultiUpload je pole s FileUpload
dal si uz snad poradis :)
btw, nevytvarej instanci SendMailer rucne. Nech si injectnout IMailer
- David Matějka
- Moderator | 6445
public function processCvForm(Form $form)
{
$values = $form->getValues(TRUE);
$mail = new Message;
$mail->addTo('dobrovolny.michal@gmail.com')
->setFrom($values['email'])
->setSubject('CV - '.$values['name'])
->setBody('Zpráva z webu ip-w.cz');
foreach ($values['files'] as $file) {
$mail->addAttachment($file->temporaryFile);
}
....
Editoval matej21 (29. 1. 2015 15:43)