загрузка файла на сайт в модуле Каталог материалов
Автор | Текст сообщения |
---|---|
Светлана |
14.07.2010 19:06 Отредактировано: 14.07.2010 19:07
Была задача сделать список вакансий. Если зайти в вакансию, чтобы была форма с полями имя, текст сопроводительного письма и т.д. и кнопка для загрузки файла резюме, все эта информация вместе с файлом резюме должна отправляться по эл.почте, указанной где-то в админке.
Решила реализовать это на модуле Каталог материалов. Для формы и отправки по email использовала механизм работы Комментирования в каталоге материалов. Не получается только приаттачить файл. В шаблоне catalog_page прописала <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <input type="file" name="filename" id="id_file"> В catalog.php: function AddComment() { if(!getAccess("comment")) return false; if(empty($_REQUEST['captcha']) || md5(strtolower($_REQUEST['captcha']))!=A_Session::get('captcha')) { $this->errors['captcha']=true; return false; } A_Session::unregister('captcha'); $data=array(); $data['date']=time(); $data['idsec']=SECTION_ID; $data['iduser']=A::$AUTH->id; $data['iditem']=$this->iditem; $data['name']=strip_tags($_REQUEST['name']); $data['bbcode']=$_REQUEST['message']; $data['message']=parse_bbcode($data['bbcode']); $data['active']=A::$OPTIONS['cactive']?'N':'Y'; if(empty($data['name']) || empty($data['message'])) return false; if($id=A::$DB->Insert(DOMAIN."_comments",$data)) { $count=A::$DB->getCount(DOMAIN."_comments","idsec=".SECTION_ID." AND iditem={$this->iditem}"); A::$DB->execute("UPDATE ".SECTION."_catalog SET comments={$count} WHERE id={$this->iditem}"); $link=catalog_createItemLink($this->iditem,SECTION); if(!empty(A::$OPTIONS['cemail'])) { if(!empty(A::$OPTIONS['commenttpl'])) { $item=A::$DB->getRowById($this->iditem,SECTION."_catalog"); $item['link']="http://".getenv('HTTP_HOST').$link; $mail = new A_Mail(A::$OPTIONS['commenttpl'],"html"); $mail->Assign("item",$item); $mail->Assign("comment",$data); $fpath = $_FILES['filename']['tmp_name']; $fname = $_FILES['filename']['name']; $fname = $this->rus2translit($_FILES['filename']['name']); $mail->addAttachment($fpath,$fname,$_FILES['filename']['type']); $mail->setFrom($_REQUEST['name'],$_REQUEST['name']); $mail->send(A::$OPTIONS['cemail']); } } if(A::$OPTIONS['cactive']) A::goUrl($link.'?newcomment=1'); else A::goUrl($link); } else return false; } В режиме отладки выдается ошибка: Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 178 Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 179 Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 180 Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 181 Вот страница на сайте, где все это используется: http://mp72.ru/vakansii/trebuetsya_veduschiy_inzhener_proektirovschik_s_opytom_raboty_ot_5_let.html Помогите, пожалуйста, приаттачить файл. Такой же механизм уже делала в модуле pages, там работало. |
admin |
14.07.2010 23:08
Для формы добавьте атрибут enctype="multipart/form-data".
|
Светлана |
14.07.2010 23:23
Огромное спасибо!
|
Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.