Avatar billede cdc Novice
07. november 2001 - 08:44 Der er 3 kommentarer og
2 løsninger

Upload billed med mail

Er der en eller flere her inde der kan hjælpe mig med at finde et perl/cgi scrip til at uploade/vedhæfte et billed via et emailformular fra hjemmesiden.

Har kigget rundt med ikke fundet noget.

/cdc
Avatar billede mahler Nybegynder
07. november 2001 - 08:59 #1
Du kan eventuelt starte med at kigge på den BLOBTEST jeg har liggende på http://www.xcom.dk/oss/ - den indeholder en række masen rundt med browser upload (via CGI-modulet) af en fil (målet var dog der at hælde filen ind i en database - via DBI).

Du burde dog rimeligt enkelt kunne lave et af dem om, så man sendte filen af sted ved at benytte MIME::Lite modulet fra CPAN.
Avatar billede cdc Novice
07. november 2001 - 09:05 #2
jeg kigger på den...

/cdc
Avatar billede cdc Novice
10. november 2001 - 08:36 #3
mahler>> den opgave var for stor til mig, det kunne jeg ikke bruge til noget

/cdc
Avatar billede cdc Novice
11. november 2001 - 13:53 #4
Kan ikke bruge noget af det desværre
Avatar billede mahler Nybegynder
11. november 2001 - 14:19 #5
ok... så prøv følgende.
Husk at skifte my@mail.adr ud med din egen mailadresse. Scriptet kaldes bare som det er og laver selv en uploadf form. Det kan sikkert laves pænere, men det virker:

#!/usr/local/bin/perl
#script: upload.pl
use strict;
use CGI qw/:standard FatalsToBrowser/;
use MIME::Lite;

     
print header, start_html(\'file upload\'), h1(\'file upload\');
  print_form()    unless param;
  print_results() if param;
  print end_html;
     
  sub print_form {
        print start_multipart_form(),
        filefield(-name=>\'upload\',-size=>60),br,
        submit(-label=>\'Upload File\'),
        end_form;
  }
     
  sub print_results {
        my $length;
        my $file = param(\'upload\');
        if (!$file) {
            print \"No file uploaded.\";
            return;
        }
        print h2(\'File name\'),$file;
        print h2(\'File MIME type\'), uploadInfo($file)->{\'Content-Type\'};
        if ($file =~ /.*\\\\(.*)\\.(.*)$/) { $file = \"$1\\.$2\" }

        my $buffer;
        my $bytesread;
        my $content;
        while ($bytesread=read($file,$buffer,1024)) { $content .= $buffer; }

my $msg = MIME::Lite->new(
        From => \'Upload2Mail <my@mail.adr>\',
        To  => \'Modtager <my@mail.adr>\',
        Subject => \'Upload2Mail:\' . $file,
        Type => \'multipart/mixed\');

$msg->attach(Type => \'TEXT\',
            Data => \"Filename: $file\\nMIME-type: \" . uploadInfo($file)->{\'Content-Type\'});

$msg->attach(Type => uploadInfo($file)->{\'Content-Type\'},
            Data => $content,
            Filename => $file,
            Disposition => \'attachment\');
$msg->send;



    }

exit();
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
Kategori
Kurser inden for grundlæggende programmering

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