nemlig Forsker
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?
bvirk Forsker
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
nemlig Forsker
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.
nemlig Forsker
25. november 2020 - 20:59 #3
Og jeg fik ikke nævnt, at jeg anvender PHPmailer() til afsendelse af mails.
bvirk Forsker
25. november 2020 - 21:05 #4
Ok - det var nemt.
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

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





Premium
Siger farvel til Proshop - her er topchef Ivan Jæger Christiansens nye job: "Det kan godt være, det er verdens mest åndssvage beslutning, men det føles virkelig godt"
Interview: Efter fire år som topchef i det fremadstormende Proshop har Ivan Jæger Christiansen meldt sin afgang. Nu tager han hul på drømmen som medejer i et nyt selskab. Se hans nye job.
Computerworld
Biden sender skjult besked til kode-folket: "Hvis du læser dette, har vi brug for din hjælp”
En stående invitation er blevet opdaget i kildekoden på Det Hvide Hus' hjemmeside. Men den er kun til de eksperter, der selv kan finde den.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
White paper
Fri medarbejdermobilitet - med digital bodyguard
Om at gå fra adgangsstyring på personniveau til adgangsstyring på desktopniveau. I takt med at flere og flere medarbejdere arbejder remote og logger på jeres systemer og netværk uden for virksomhedens sikkerhedsværn, risikerer de at efterlade døren til forretningen på klem. Dermed bliver endpoints som pc’ere, Mac’s og servere et oplagt mål for hackere, som vil ind i virksomhedens infrastruktur. I blandt sker det også, at medarbejdere udnytter deres privilegerede adgangsrettigheder til skadelige formål. Det er derfor mere aktuelt end nogensinde at rette opmærksomheden mod jeres endpoints og de rettigheder, der ligger her.