@nikkon82

Как передать вложенный файл, полученный через js, на почту?

Добрый день!
Подскажите пожалуйста, файл через js загружается на сервер - здесь все ОК, а как его еще и передать вложенным на почту?

Поле для выбора файла:

<input type="file" multiple="multiple" accept=".txt,image/*">
<a href="#" class="upload_files button">Загрузить файлы</a>
<div class="ajax-reply"></div>


JS

var files; 
 
$('input[type=file]').on('change', function(){
	files = this.files;
});

$('.upload_files').on( 'click', function( event ){

	event.stopPropagation(); 
	event.preventDefault(); 

	if( typeof files == 'undefined' ) return;

	var data = new FormData();

	$.each( files, function( key, value ){
		data.append( key, value );
	});

	data.append( 'my_file_upload', 1 );

	$.ajax({
		url         : '/send-files/submit.php',
		type        : 'POST',
		data        : data,
		cache       : false,
		dataType    : 'json',
		processData : false,
		contentType : false

	});

});


PHP

<?php

if( isset( $_POST['my_file_upload'] ) ){  

	$uploaddir = './uploads'; 

	if( ! is_dir( $uploaddir ) ) mkdir( $uploaddir, 0777 );

	$files      = $_FILES;
	$done_files = array();

	foreach( $files as $file ){
		$file_name = $file['name'];

		if( move_uploaded_file( $file['tmp_name'], "$uploaddir/$file_name" ) ){
			$done_files[] = realpath( "$uploaddir/$file_name" );
		}
	}

	$data = $done_files ? array('files' => $done_files ) : array('error' => 'Ошибка загрузки файлов.');

	die( json_encode( $data ) );
}


В целом задача такая - есть еще форма (калькулятор) и под ней кнопка "Выбрать файл", при нажатии на кнопку "Отправить" вылазит всплывающее окно с Именем и Емейлом, в скрытые поля через JS подгружаются данные из формы с калькулятором. Нужно отправить на почту и данные из калькулятора и если есть вложенный файл и Имя с Емейлом из всплывающего.
Отдельно форма (без файла) + Емейл с Именем из всплывающего на почту отправляются. (Отдельные файлы с кодом)
Но как объединить отправку и файла и всех данных? (Сверху код только для загрузки файла на сервер)
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 1
@4iloveg
Full-Stack HTML Developer
Если ты успешно загрузил файл на сервер, то после указанного кода задействуй функцию отправки емейла.
Параметры пост запроса можно объединить в одну строку и после передать ее в тело сообщения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы