Estoy tratando de enviar un correo electrónico con un archivo adjunto, que el usuario puede seleccionar con la etiqueta HTML <input type=file> .
Mi idea era leer el archivo de la entrada con el Filereader de archivos y obtener el contenido y el tipo de nombre de archivo +. Con esta tres información puedo crear un nuevo archivo con el nombre de archivo + tipo y el contenido. Mi primera pregunta es:
¿Está bien este método o hay una manera más fácil de hacerlo?
A mi problema/segunda pregunta:
Este es mi código y todo funciona excepto escribir el contenido en el archivo creado (línea 3 del código PHP). Crea el archivo en la ruta correcta, pero el archivo siempre está vacío, pero el archivo selectedfile[0] no está vacío. probé con (.txt, .docx, .pdf)
Este es el valor del archivo selectedfile[0] si selecciono un archivo .pdf aleatorio: 
<input class="swal2-file" type="file" id=f_file> async function() { return new Promise((resolve, reject) => { var selectedfile = null; var email = $('#email').val(); var header = $('#header').val(); var content = $('#content').val(); var file = $('#files')[0].files[0]; if (file) { var reader = new FileReader(); reader.readAsText(file, "UTF-8"); reader.onload = function (evt) { resolve({ 'email': email, 'header': header, 'content': content, 'selectedfile': [evt.target.result, file.name] }); } reader.onerror = function (evt) { reject("error reading file"); } }else { resolve({ 'email': email, 'header': header, 'content': content, 'selectedfile': null }); } });Con una publicación de Axios, envío los datos:
selectedfile = [0] filecontent, [1] filecontent de archivo de Filereader
a mi PHP-Backend.
$content = json_decode($request->getContent()); $selectedfile = $content->selectedfile; file_put_contents("../storage/" . $selectedfile[1],$selectedfile[0]);