Как отправить большой файл

Почему не отправляется файл по почте?

Здравствуйте. Прошу помочь. На сайте есть форма для вакансий. Все поля работают. Потребовалось отправлять текстовый файл с резюме. Вроде всё сделал правильно, но при отправки данных с формы (если мы загрузили файл) появляется ошибка. Без загрузки файла всё работает. Ошибка в консоли «Swift_IoException in FileByteStream.php line 144: Unable to open file for reading». Файл хранится во временной папке и не сохраняется после отправки (это мне нужно). Я попробовал закинуть файл на сервер и при отправке почты прописать вручную путь до файла для attach(«/папки сервера/tmp/php/uploads/phpfoeu5Y/resume.docx») то файл прикрепляется и приходит на почту. Но если я засуну этот же путь в переменную $path = «/папки сервера/tmp/php/uploads/phpfoeu5Y/resume.docx»; и выведу attach($path) то мне выдаст ошибку. Помогите пожалуйста, укажите мне на мою ошибку.

<form action=»/ajax/vacancy» class=»pop_form» id=»form-resume» enctype=»multipart/form-data» data-id=»vacancy» onsubmit=»sendVacancy(this, event)»> <div class=»f_tit»>Отклик на вакансию</div> <div class=»row_form_information_vacancy»> <div class=»form_information_vacancy»> <input type=»text» name=»name_vacancy» value=»» class=»form_information_vacancy_name» readonly> <input type=»text» name=»wages» value=»» class=»form_information_vacancy_wages» readonly> </div> </div> <input type=»file» name=»ypicture» id=»ypicture» value=»» style=»display:none;»> <fieldset class=»form_block_vacancy»> <label> <input type=»text» name=»name» value=»» placeholder=»Имя, фамилия» class=»f_field form_input_vacancy_name»> </label> </fieldset> <fieldset class=»form_block_vacancy»> <label> <input type=»text» name=»phone» value=»» placeholder=»Телефон» class=»f_field form_input_vacancy_phone»> </label> </fieldset> <fieldset class=»form_block_vacancy»> <label> <input type=»text» name=»email» value=»» placeholder=»E-mail:» class=»f_field form_input_vacancy_mail»> </label> </fieldset> <fieldset class=»form_block_vacancy»> <label> <textarea name=»text» cols=»30″ rows=»5″ placeholder=»Комментарий:» class=»f_ta form_textarea_vacancy»></textarea> </label> </fieldset> <div class=»attach-file-wrap» style=»display:none;»> <label class=»text attach-file» for=»file»> <img src=»/images/resume.png»> <div class=»fileLabel»>Прикрепите файл формата doc, docx или pdf размером не более 10 Мб</div> <div class=»fileLabel2 hide»></div> </label> <input class=»text attach-file-input file» type=»file» name=»file»> </div> <div class=»policy policy_form_vacancy»>Нажимая кнопку «Отправить», вы подтверждаете свое согласие на обработку <a href=»/policy» target=»_blank» style=»color: #000″>персональных данных</a></div> <input type=»submit» name=»» value=»Отправить» class=»f_btn»> </form>
Код JavaScript:
function sendAjaxResume(t,e,i,n){ e=e||{},»undefined»==typeof n&&(n=»json»); var formData = new FormData($(‘#form-resume’)); $.ajax({ url:t, data: formData, dataType:n, processData: false, contentType: false, type:»post», dataType: ‘json’, beforeSend:function(t){ return t.setRequestHeader(«X-CSRF-Token»,$(«meta»).attr(«content»)) }, success:function(t){ «function»==typeof i&&i(t) }, error:function(t,e,i){ alert(«Не удалось выполнить запрос! Ошибка на сервере.»); } }) } function sendVacancy(t,e,id,site){ e.preventDefault(),t=$(t); var i=t.serialize(),n=$(t).attr(«action»); t.find(«.err-msg-block»).remove(); sendAjaxResume(n,i,function(e) { if(«undefined»!=typeof e.errors) { applyFormValidate(t,e.errors); var i=; for(var n in e.errors)i.push(e.errors); var o=i.join(«<br />»); t.find(«.f_tit»).after(‘<div class=»err-msg-block»>’+o+»</div>») } else { resetForm(t),popup(«Спасибо за письмо, в ближайшее время мы Вам ответим!»); } }) }
Код PHP:
public function postVacancy() { $data = Request::only(); $valid = Validator::make($data, , ); if ($valid->fails()) { return ; } else { $path = $_FILES.’/’.$_FILES; $feedback_data = ; $feedback = Feedback::create($feedback_data); Mail::queue(‘mail.callback’, , function ($message) use ($feedback) { $title = $feedback->id . ‘ | Вакансия | ‘; $message->from($this->fromMail, $this->fromName) ->to(Settings::get(‘feedback_email’)) ->subject($title); $message->attach($path); }); return ; } }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *