I’m looking for sending attachment by using PHPMailer. To send the mail I need to store it so I create a folder automatically during the process, and I want to save those uploaded files inside this folder.
The folder is created correctly but the file is not moved inside the folder. I’ve tried by using move_uploaded_file
and copy
but this not work.
if some could tell me what’s wrong here…
if (!empty($_POST['uploaded_file']) & isset($_POST['uploaded_file'])){ // Creatinf folder ploads if not exist $path_upload = "uploads"; createFolderIfNotExist($path_upload); // create folder with company name if not exist $path_file = $path_upload . '/mail_upload'; createFolderIfNotExist($path_file); // create folder with date + id_user $path_file .= "/".date("Ymd").$user->getId(); createFolderIfNotExist($path_file); foreach ($_POST['uploaded_file'] as $attachment2) { move_uploaded_file($attachment2, "../".$path_file."/".$attachment2); $pj = "/".$path_file."/".$attachment2; // Attachments $mail->addAttachment($pj); // Optional name } }
Thank you for you help
Advertisement
Answer
The first problem is that you’re handling uploaded files with $_POST
. It should be $_FILES
.
The second problem is that you should use tmp_name
index in your move_uploaded_file
function.
The third problem is that your foreach
loop is not correct if you’re uploading multiple files.
And it seems like you’re uploading files outside of $path_file
directory. So, try this:
if (!empty($_FILES) & isset($_FILES['uploaded_file']['tmp_name'])) { // Create folder uploads if not exists $path_upload = 'uploads'; createFolderIfNotExist($path_upload); // create folder with company name if not exists $path_file = $path_upload . '/mail_upload'; createFolderIfNotExist($path_file); // create folder with date + id_user $path_file .= '/' . date('Ymd') . $user->getId(); createFolderIfNotExist($path_file); foreach ($_FILES['uploaded_file']['name'] as $key => $attachment2) { move_uploaded_file($_FILES['uploaded_file']['tmp_name'][$key], $path_file . '/' . $attachment2); $pj = '/' . $path_file . '/' . $attachment2; // Attachments $mail->addAttachment($pj); // Optional name } }