ОБЗОР:
У меня есть форма, которая включает в себя 5 полей загрузки файлов. Сценарий php обрабатывает данные и отправляет 2 электронных письма (одно администратору и подтверждение для пользователя) И добавляет данные в файл .csv на сервере.
ВОПРОС:
Как получить URL-адрес загруженных файлов в переменную, которую я могу использовать для заполнения электронной почты и файла .csv.
Все работает отлично, за исключением того, что мне нужна ссылка на каждый из загруженных файлов, включенных в электронные письма и в файл .csv. Я не могу понять эту часть после нескольких дней попыток.
УПРОЩЕННАЯ ФОРМА HTML:
<HTML><head><title>MultiFile Upload and Send Email</title></head><body>
<form method='post' action='php/multiUploadTestProcess.php' multipart='' enctype='multipart/form-data'>
<label for ='exhName'>Exhibitor Name:</label>
<input type='text' name='exhName' multiple class='form-control'><br><br>
Select File 1: <input type='file' name='img[]' multiple class='form-control' size='10'><br><br>
Select File 2: <input type='file' name='img[]' multiple class='form-control' size='10'><br><br>
Select File 3: <input type='file' name='img[]' multiple class='form-control' size='10'><br><br>
Select File 4: <input type='file' name='img[]' multiple class='form-control' size='10'><br><br>
Select File 5: <input type='file' name='img[]' multiple class='form-control' size='10'><br><br>
<input type='submit' value='upload'>
</form>
PHP: ПРИМЕЧАНИЕ. Я удалил всю проверку / очистку, удалил добавление .csv и отправил вторую электронную почту. Я предполагаю, что, как только мы сможем получить ссылки на одно письмо, остальные будут почти такими же.
<?php
$exhName = $_POST['exhName'];
$exhNameNoSpace = str_replace(" ","-", $exhName);
$img = $_FILES['img'];
$to = 'DESTINATION-EMAIL@DOMAIN.com';
$subject = 'New File Uploads';
$email = 'ReplyYToEMAIL@DOMAIN.com';
if(!empty($img))
{
/* reArrayFiles changes the array pattern for PHP's $_FILES (see function at end) */
$img_desc = reArrayFiles($img);
print_r($img_desc);
/* RENAME EACH FILE to current date, exhibitor name w/o spaces, and random integer string (ensuring no file overwrites). Then MOVE FILE to uploads */
foreach($img_desc as $val)
{
$newname = date('m-d-Y',time()).'-'.$exhNameNoSpace.'-'.mt_rand().'.jpg';
move_uploaded_file($val['tmp_name'],'../uploads/'.$newname);
/* THIS FOLLOWING LINE WAS MY ATTEMPT AT GETTING A LINK TO EACH UPLOADED FILE BUT IS NOT WORKING. AND THE VARIABLE $newname HERE IS ADDING A NEW RANDOM INT TO THE FILENAME - NOT THE ONE THE FILE WAS SAVED WITH. */
$filePath = '**Full Path To Directory**'.$newname;
}
/* SEND EMAIL TO ADMIN */
$emailText = "=============================================\nYou have a new Market Place Application\n".
"Here are the details:\n=============================================\n\n Exhibitor Name: $exhName \n\n Upload File 1: $filePath \n\n Upload File 2: $filePath \n\n ###";
// All the neccessary headers for the email.
$headers = array('Content-Type: text/plain; charset="UTF-8";',
'From: ' . $email,
'Reply-To: ' . $email,
'Return-Path: ' . $email,
);
$emailText = wordwrap($emailText, 70);
// Send email
mail($to, $subject, $emailText, implode("\n", $headers));
/* END SEND EMAIL TO ADMIN */
}
function reArrayFiles($file)
{
$file_ary = array();
$file_count = count($file['name']);
$file_key = array_keys($file);
for($i=0;$i<$file_count;$i++)
{
foreach($file_key as $val)
{
$file_ary[$i][$val] = $file[$val][$i];
}
}
return $file_ary;
}
?>
Помощь с благодарностью!