Добавить несколько загрузок файлов в существующую форму PHP

Я веб-разработчик, пытающийся пробиться через форму PHP для внештатного клиента. Это довольно обширная форма заявления о приеме на работу, которую клиент попросил включить две загрузки файлов: изображение (jpg, png) и резюме (pdf, doc). Эти файлы будут прикрепить к письму содержащий форму ответов. Загрузка файлов в папку на сервере постоянно не требуется.

Поскольку я совершенно неадекватен PHP, я прибег к сайту под названием Formbakery сгенерировать упомянутую форму для меня, и это здорово — за исключением того, что она не включает возможности загрузки файлов.

Я пробовал несколько различных ресурсов для загрузки файлов php и вложения электронной почты, в том числе этот урок а также этот ответ, однако проблема в том, что я просто не знаю, как включить это в код, который у меня уже есть. Я надеюсь, что кто-то может помочь мне с сочетанием различных элементов. Если многократная загрузка файла — это слишком много, то даже резюме для резюме будет огромной помощью.

PHP для отправки формы

<?php
// get value from array
function array_get(array $array, $key, $default = null)
{
return (array_key_exists($key, $array)) ? $array[$key] : $default;
}

// get string value from array
function array_get_string(array $array, $key, $default = '', $trim = true)
{
$val = array_get($array, $key);
if (is_string($val)) {
return ($trim) ? trim($val) : $val;
}
return $default;
}

// takes a form array and validates it
function validateForm(array $form)
{
// array of error messages
$errors = array();

// for each field in the form
foreach ($form as $field)
{
// if the field doesnt require any validation, skip it
if (!isset($field['validation'])) continue;
// for each validation type
foreach ($field['validation'] as $validate)
{
// if the field is empty, there is nothing to check
if (trim($field['value']) === '') break;

switch($validate)
{
case 'email':
if(!filter_var($field['value'], FILTER_VALIDATE_EMAIL)) {
$errors[] = '"' . $field['value'] . '" is an invalid email address.';
}
break;
case 'number':
if(!preg_match('/^[0-9 ]+$/', $field['value'])) {
$errors[] = '"' . $field['value'] . '" is an invalid number.';
}
break;
case 'alpha':
if(!preg_match('/^[a-zA-Z ]+$/', $field['value'])) {
$errors[] = '"' . $field['value'] . '" contains invalid characters. This field only accepts letters and spaces.';
}
break;
}
}

// if field is required and empty
if (isset($field['required']) && trim($field['value']) === '') {
// overwrite errors with only the required error message
$errors[] = '"' . $field['name'] . '" is a required field.';
}
}

// return an array of errors
return $errors;
}

// define form
$FORM = array(
'position-applied-for' => array(
'name' => 'Position applied for',
),
// CONTINUE ARRAY ITEMS
);

// populate form values from POST
foreach ($FORM as $field_name => &$field_data) {

$value_type = gettype($_POST[$field_name]);

if ($value_type == 'string')
{
// get the string value from POST data
$field_data['value'] = array_get_string($_POST, $field_name);
}

elseif ($value_type == 'array')
{
// these are multiple checkbox values
// we need to concat them into a string
$concat = '';

foreach (array_get($_POST, $field_name) as $item) {
$concat .= $item . '; ';
}

$field_data['value'] = $concat;
}
}

// unset referenced variable to avoid quirks
unset($field_data);

$AJAX = array_get_string($_POST, 'request_method') === 'ajax';
$ERRORS = validateForm($FORM);
$SUCCESS = count($ERRORS) ? false : true;

// send email
if ($SUCCESS)
{
// Full Name: $fullname \nEmail Address: $emailaddress
$formcontent = '';
$emailtemplate = "INSERT EMAIL TEMPLATE HTML";
foreach ($FORM as $field_name => $field_data) {
$formcontent .= $field_data['name'] . ': ' . $field_data['value'] . " \n";
}

$formcontent = wordwrap($formcontent, 70, "\n", true);
$recipient = 'EMAIL@hotmail.com';
$subject = 'Creed Coffee Application Form';
$mailheader = "From: applications@creed.coffee \r\nContent-Type: text/html;";

mail($recipient, $subject, $emailtemplate, $mailheader);
}

?>

<?php if ($AJAX): ?>
<?php if ($SUCCESS): ?>
PASS
<?php else: ?>
FAIL
<?php endif; ?>
<?php else: ?>
Do a redirect
<?php endif; ?>

Это сопровождается jQuery для проверки и т. Д. Я понимаю, что это большая просьба, и я не ожидаю, что кто-то потратит время, чтобы написать все это для меня, но я был бы очень признателен, если бы кто-то мог даже указать мне в правильное направление или дать мне достаточно указателей, чтобы бороться с этим вперед!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector