CPAN: wo steckt das tempfile beim upload

Beitrag lesen

An deinem Code kann ich sehen, dass du aus einer schlechten/veralteten Quelle lernst. Ersetze sie durch etwas modernes, damit du guten Code schreibst.

In https://forum.selfhtml.org/?t=212104&m=1448606 habe ich dir schon das besseres Modul File::LibMagic zur Inhaltserkennung empfohlen, benutze es.

Du brauchst nicht manuell umpuffern, um eine Datei zu kopieren. Benutze File::Copy, es kann mit Handles umgehen.

#!/usr/bin/env perl  
use CGI qw();  
use Fcntl qw(SEEK_SET);  
use File::Copy qw(cp);  
use File::LibMagic qw();  
use autodie qw(cp);  
  
my $cgi = CGI->new;  
my $handle = $cgi->upload('incoming')->handle;  
$handle->read(my $buffer, 4*1024);  
  
$cgi->print(  
    $cgi->header('text/plain'),  
    sprintf  
        "Client type: %s\nServer detected type: %s\n",  
        $cgi->uploadInfo($cgi->param('incoming'))->{'Content-Type'},  
        File::LibMagic->new->checktype_contents($buffer)  
);  
  
seek($handle, 0, SEEK_SET);  
cp $handle, '/tmp/foobar';