Hi!
Hab folgendes Problem:
Ich verwende ein Perlscript um Dateien über Formulare auf meinen Webserver zu laden. Das perlscript hab ich glaub ich eh irgendwo aus selfhtml herauskopiert.
Die ganze Sache funktioniert grundsätzlich auch tadellos. Alle files kommen am server an und sind vollständig.
Allerdings etwas zu vollständig:
Wenn ich Windows-Media-Videos rauflade dann sind sie im vergleich zum original um 1 byte zu gross.
Ich kann die Videos im Player zwar problemlos abspielen, aber der WindowsMedia-StreamingServer ist etwas sensibler und sagt das der Abschluss der Datei nicht richtig ist.
Also:
Wie kriege ich das überflüssige Byte wieder raus?
Wie kann ich verhindern das es überhaupt geschrieben wird?
Warum ist es überhaupt da?
Hier der Auszug aus dem Code:
Schreibe die Datei auf den Server
Die Routine gibt die Anzahl an Bytes zurueck, die es geschrieben hat.
sub writefile
{
local *DAT;
my $self = shift;
my $fieldname = shift;
if($fieldname eq "")
{ return undef; }
my $filename = shift || $formdata->{$fieldname}->{"filename"};
open(DAT,">".$filename) or die("Fileupload.pm: Error: $!");
binmode DAT;
print DAT $formdata->{$fieldname}->{"content"};
close(DAT);
return length($formdata->{$fieldname}->{"content"});
}