User since
2003-10-16
19
Artikel
BenutzerIn
Ich meinte ja auch nur, der EB, den es auch bei C-W gibt :)
print <HANDLE>; hatte ich auch schon mal probiert, ging auch nicht richtig\n\n
<!--EDIT|Jörg|1066330985-->
User since
2003-08-04
2036
Artikel
BenutzerIn
Es ist ziemlich schwierig nachzu vollziehen was du machst, da du die subroutine nicht gepostet hast!
Ich weiss also nicht was in der sub passiert!
Machst du ein 'return' in der sub ???
Versuch, mal...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl
use warnings;
use strict;
my $file = "z:\\test.exe";
my $groesse = -s($file);
my $fn = $file;
$fn =~ s/^(.*)\/(.+?)$/$2/;
print "Content-Disposition: inline; filename=\"$fn\"\n";
print "Content-Length: ". $groesse ."\n";
print "Content-type: " .&getmimetype($fn). "\n\n"; # getmimetype ermittelt den mime-typen, was sonst :)
open(IN,"$fn") or die $!;
binmode(IN);
binmode(STDOUT);
while (sysread(IN, my $Buffer, 2)) {
print $Buffer;
} # while
close(IN) or die $!;
1;
Gruss
User since
2003-10-16
19
Artikel
BenutzerIn
RAFFT IHR ES EIGENTLICH NICHT???? in $fn steht nach der zeile $fn =~ s/^(.*)\/(.+?)$/$2/; nur noch "test.exe", desshlab kann ich die nie und nimmer in open benutzen!!!
getmimetype ermittelt über ein hash den entsprechenden mime-typen, dafür wird die dateiendung abgespalten und im hash als key benutzt. Zurückgegeben, ja per return, wird dann nur der richtige mime-typ, z.B. "text/html"
So wie du das gepostet hast, nur statt open(IN,"$fn") or die $!; open(IN,"$file") or die $!; (s.o.), tut geht es genauso gut/schlecht...
Und es gibt auch keine Meldungen oder Einträge im error.log.
PS.: Warum sollte ich an $file was ändern? die datei wird geöffnet und das scritp funktioniert ja auch soweit, also muss der Pfad stimmen.\n\n
<!--EDIT|Jörg|1066333685-->
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=Jörg,16.10.2003, 21:46]RAFFT IHR ES EIGENTLICH NICHT????[/quote]
doch... und du?
mein code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sub send_binaryfile
{
my ($file) = @_;
binmode STDOUT;
if(open(FILE, "< $file"))
{
binmode FILE;
while(<FILE>) { print $_; }
close FILE;
}
}
print "Content-Disposition: inline; filename=\"$fn\"\n";
print "Content-Length: $groesse\n";
print "Content-Type: " .&getmimetype($fn). "\n\n";
send_binaryfile($file);
User since
2003-10-16
19
Artikel
BenutzerIn
Ich miente mit dem "RAFT IHR..." das mit $fn und $file, weil havi open (IN,$fn) geschrieben hat, was gar nicht gehen kann...
Die methode hilft auch nicht, dabei wird die datei ebenfals fehlerhaft übertragen
User since
2003-10-16
19
Artikel
BenutzerIn
Das wird nichts ändern, wie gesagt habe ich NULL KOMMA KEIN Problem die Datei zu öffnen!
Das heißt der Pfad ist zu 100% in Ordnung!!!!!
User since
2003-08-04
2036
Artikel
BenutzerIn
[quote=Jörg,17.10.2003, 12:14]Das wird nichts ändern, wie gesagt habe ich NULL KOMMA KEIN Problem die Datei zu öffnen!
Das heißt der Pfad ist zu 100% in Ordnung!!!!![/quote]
Was genau ist denn an der Datei danach fehlerhaft?
Gruss
User since
2003-10-16
19
Artikel
BenutzerIn
Also, bei einer mp3, so ist es bei allen anderen dateien auch:
An Offset 031810 steht statt 77 4F 3E ; 00 30 E9
An Offset 032810 sthet statt 0C F3 22 ; 00 30 E9
An 033810 steht wieder 00 30 E9 statt des richtigen wertes
An 034810, 035810,... das gleiche bis 03A810
da steht statt EA C2 E9 06 ; 00 30 E9 80
Dann geht es bis 42000 wie vorher weiter, ab da ist fast alles anders
Bis ca. 52400
und es geht immer so weiter...
Auffällig is dabei das immer wieder 00 30 E9 auftaucht...
(Ist ja klar, dass alle Zahlen Hexadezimal waren...)