Problema com Download dos Anexos
Olá,
Estou a ter dificuldade, em carregar os anexos para fazer download da imagem ou ficheiros.. o link fica sempre incorrecto, ou como se não existisse.
Estou a trabalhar com SQLITE ..
Já criei uma tabela para o attachment, porque terei que fazer ele ir buscar o attachment do respectivo id, que depois seja possível o download.. falta é fazê-lo chamar.
Tenho o seguinte código
$pdo = new PDO("sqlite:mydb.db");
$email = $pdo->query("SELECT * FROM `theEmails` WHERE `id`='$usersID'")->fetch(PDO::FETCH_ASSOC);
$email_body = base64_decode($email['message']);
$letter_html = "";
// $op_getKey = preg_match_all("/alternative; boundary=\"(.*)\"/", $email_body, $getKey);
$op_getKey = preg_match_all("/boundary=\"(.*)\"/", $email_body, $getKey);
$has_attachment = preg_match_all("/multipart\/mixed/", $email_body, $attachment);
if ($op_getKey) {
if ($has_attachment) {
$mailParts = explode("--" . $getKey[1][1], $email_body);
$attachParts = explode("--" . $getKey[1][0], $email_body);
$get_attach_name=preg_match_all("/filename=\"(.*?)\"/", $attachParts[2], $attach_name);
$get_attach_type=preg_match_all("/Content-Type: (.*?);/", $attachParts[2], $attach_type);
$pure_code = explode("\n\n",$attachParts[2]);
$pure_code = str_replace("\r","",$pure_code[1]);
$pure_code = str_replace("\n","",$pure_code);
}else{
$mailParts = explode("--" . $getKey[1][0], $email_body);
}
// $letter_text = str_replace('Content-Type: text/plain; charset="UTF-8"', '', $mailParts[1]);
// echo $letter_text;
$the_mail = $mailParts[2];
$to_replace = array(
'Content-Type: text/html; charset="UTF-8"',
'Content-Type: text/html; charset=UTF-8',
'Content-Type: text/html; charset="utf-8"',
'Content-Type: text/html; charset=utf-8',
'Content-Type: text/html; charset="iso-8859-1"',
'Content-Type: text/html; charset=iso-8859-1',
'Content-Type: text/html; charset="ISO-8859-1"',
'Content-Type: text/html; charset=ISO-8859-1',
'Content-Type: text/plain; charset="iso-8859-1"',
);
foreach ($to_replace as $k => $v) {
$the_mail = str_replace($to_replace[$k], '', $the_mail);
}
//$the_mail = str_replace('Content-Type: text/html; charset="UTF-8"', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset=UTF-8', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset="utf-8"', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset=utf-8', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset="iso-8859-1"', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset=iso-8859-1', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset="ISO-8859-1"', '', $the_mail);
//$the_mail = str_replace('Content-Type: text/html; charset=ISO-8859-1', '', $the_mail);
if (preg_match_all("/Content-Transfer-Encoding: quoted-printable/", $the_mail, $mailToDecode)) {
$message_to_decode = str_replace('Content-Transfer-Encoding: quoted-printable', '', $the_mail);
$letter_html = quoted_printable_decode($message_to_decode);
}elseif(preg_match_all("/Content-Transfer-Encoding: base64/", $the_mail, $mailToDecode)){
$message_to_decode = str_replace('\r', '', $the_mail);
$message_to_decode = str_replace('\n', '', $message_to_decode);
$message_to_decode = str_replace('Content-Transfer-Encoding: base64', '', $message_to_decode);
$letter_html = base64_decode($message_to_decode);
// $letter_html = $message_to_decode;
} else {
$letter_html = $the_mail;
}
// echo $letter_html;
} else {
$mailParts = explode("\n\n", $email_body);
foreach ($mailParts as $k => $v) {
if ($k > 0) {
$letter_html .= $v . "\n\n";
}
}
if(preg_match_all("/Content-Transfer-Encoding: base64/", $email_body, $mailToDecode)){
$message_to_decode = str_replace('\r', '', $letter_html);
$message_to_decode = str_replace('\n', '', $message_to_decode);
$letter_html = base64_decode($message_to_decode);
// $letter_html = $message_to_decode;
}
Uso tambem o seguinte para chamar o link para o download dos anexos.
Já experimentei com "href="www.site.com/<?=$attach_name[1][0]?>" mas mesmo assim o link fica bem, mas não faz a chamada do anexo.
Ele poderia ficar com os ficheiros salvos na pasta "anexos" e depois serem apagados passado 1 dia ou 5 dias.
<a target="_blank" href="https://site.com/attachments/<?=$attach_name[1][0]?>" data-target="<?=$id?>">
Tenho ainda um outro ficheiro com o seguinte (respectivo ao attachment)
<?php
if (isset($_GET['attachment'])) {
}
?>
Não sei se deu para entender.
Fico aguardar uma ajudinha ;)
Obrigado,
AbraçoDiscussão (2)
Carregando comentários...