Schrift
[thread]62[/thread]

Binäre-Datei öffnen und dann an den Browser senden (Seite 2)

Leser: 1


<< |< 1 2 3 4 5 >| >> 43 Einträge, 5 Seiten
Jörg
 2003-10-16 23:02
#5791 #5791
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
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-->
havi
 2003-10-16 23:22
#5792 #5792
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
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...

Code: (dl )
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
Jörg
 2003-10-16 23:46
#5793 #5793
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
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-->
esskar
 2003-10-17 01:57
#5794 #5794
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Jörg,16.10.2003, 21:46]RAFFT IHR ES EIGENTLICH NICHT????[/quote]
doch... und du?

mein code:

Code: (dl )
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);
Jörg
 2003-10-17 13:36
#5795 #5795
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
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
havi
 2003-10-17 14:00
#5796 #5796
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Mach mal
Code: (dl )
$file = 'z:/test.exe';

statt
Code: (dl )
$file = "z:/test.exe";


Gruss
Jörg
 2003-10-17 14:14
#5797 #5797
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
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!!!!!
havi
 2003-10-17 14:17
#5798 #5798
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[E|B
,16.10.2003, 17:53]Ist Jörg JW?

Nein!
JW = JW auch hier :)

Gruss
havi
 2003-10-17 14:18
#5799 #5799
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[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
Jörg
 2003-10-17 14:28
#5800 #5800
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
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...)
<< |< 1 2 3 4 5 >| >> 43 Einträge, 5 Seiten



View all threads created 2003-10-16 17:45.