Avatar billede nemlig Professor
25. november 2020 - 20:00 Der er 3 kommentarer og
1 løsning

Hent filer fra server, omdøb fil og vedhæft mail

Hejsa.
Jeg har udviklet et script, hvor man kan uploade filer til en mappe på serveren.
Under upload ændres filnavnet til et random-navn bestående af tal og bogstaver for at undgå problemer med danske- og specialtegn.
Oprindelig filnavn og det omdøbte navn gemmes i DB.

Jeg har lavet et mailscript, som sender en mail med filerne vedhæftet.
Men jeg kan ikke hitte ud af, at omdøbe filnavnene tilbage til oprindelig navn, når de vedhæftes mailen.
Jeg har jo oprindelig filnavn og random-filnavn gemt i DB.

Koden til vedhæftning af filerne, ser således ud:
$dir = "uploads/";
    $filer = scandir($dir);
   
    for($i = 2; $i < count($filer); $i++)
    {
        $fileatt     = $dir.$filer[$i];
        $file = fopen( $fileatt, 'rb' );
        $data = fread( $file, filesize( $fileatt ) );
        fclose( $file );
        $mail->AddAttachment($fileatt);
    }

og koden fungerer fint, bortset fra de vedhæftede filer, som har forkert filnavn.

Nogen forslag til løsning?
Avatar billede bvirk Guru
25. november 2020 - 20:49 #1
Hvad du har valgt at kalde $fileatt skal bruges til at slå op i db - er felterne f.eks org,new vil "select org from <tabel> where new='$fileatt'" give det oprindelige opload navn - sådan konseptionalt - set ser lidt forskellig ud afhængigt af om der anvendes mysqli eller PDO.
Hvis $mail er en instans af mail_mime er tredje parameter navnet på vedhæftede, som angivet her:
https://pear.php.net/package/Mail_Mime/docs/latest/Mail_Mime/Mail_mime.html#methodaddAttachment
Avatar billede nemlig Professor
25. november 2020 - 20:58 #2
#1 Tak for input.:)

Jeg fandt en rigtig nem løsning. Der skal blot sættes en parameter mere på
$mail->AddAttachment( $fileatt , $row['filnavn'] );

og $row['filnavn'] er det oprindelige filnavn, som er hentet fra DB.
Avatar billede nemlig Professor
25. november 2020 - 20:59 #3
Og jeg fik ikke nævnt, at jeg anvender PHPmailer() til afsendelse af mails.
Avatar billede bvirk Guru
25. november 2020 - 21:05 #4
Ok - det var nemt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester