Schrift
[thread]62[/thread]

Binäre-Datei öffnen und dann an den Browser senden

Leser: 1


<< |< 1 2 3 4 5 >| >> 43 Einträge, 5 Seiten
Jörg
 2003-10-16 17:45
#5781 #5781
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
Mein script:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$file = "z:/test.exe";
$groesse = -s($file);
$fn = $file;
$fn =~ s/^(.*)\/(.+?)$/$2/;
print "Content-Disposition: inline; filename=\"$fn\"\n";
print "Content-Length: ". $groesse ."\n";
print "Content-type: " .&getmimetype($file). "\n\n"; #getmimetype ermittelt den mime-typen, was sonst :)
open(IN,"$file") or die $!;
binmode IN;
binmode STDOUT;

while (sysread(IN, $Buffer, 2))
{
print $Buffer;
}

close(IN);


Jetzt habe ich noch 2 Probleme:

1. Beim Mozilla will er an den dateinamen immer .cgi anhängen, beim IE geht's.
2. Sobald ich die 2 bei sysread auf z.B. 1024 erhöhe, wird die datei nicht mehr 1:1 übertragen, d.h. die Datei ist fehlerhaft.

Hat jemand ne Idee, woran das liegt?
format_c
 2003-10-16 17:58
#5782 #5782
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
1. Probier mal in der Content-Disposition als Dateinamen nicht "z:\file.exe" sondern nur file.exe zu übergeben;

2. versuch mal read

Gruß Alex
Jörg
 2003-10-16 19:09
#5783 #5783
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
Quote
1. Probier mal in der Content-Disposition als Dateinamen nicht "z:\file.exe" sondern nur file.exe zu übergeben;

Es wird nur file.exe übergeben, $fn =~ s/^(.*)\/(.+?)$/$2/;

Quote
2. versuch mal read

Hab ich auch schon
havi
 2003-10-16 19:16
#5784 #5784
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Nein, es wird z:/test.exe uebergeben!

Du machst naemlich:
Code: (dl )
1
2
$fn = $file;
$fn =~ s/^(.*)\/(.+?)$/$2/;


und unten oeffnest du aber $file
Code: (dl )
open(IN,"$file") or die $!;


Gruss
renee
 2003-10-16 19:24
#5785 #5785
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hallo Jörg! Den Weg von perl.de zu perl-community.de gefunden??

Wie havi schon sagte, musst Du $fn und nicht $file bei dem open(...) benutzen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Jörg
 2003-10-16 19:37
#5786 #5786
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
Bei Perl.de antwortet ja keiner mehr :)

Bin ich jetzt blöd, oder seit ihr blöd????

$file = z:/test.exe
$fn = test.exe

An Content-Disposition wird $fn also test.exe übergeben.

In der open-anweisung wird $file also z:/test.exe benutzt, was ja auch sein muss, da die test.exe nicht im gleichen verzeichnis, wie das script liegt.
Wenn ich also $fn bei open benutzte würde versucht werden die datei test.exe aus dem verzeichnis des scriptes zu öffenen, bei mir z:/cgi-bin/down/, wo es sie nicht gibt.
[E|B]
 2003-10-16 19:53
#5787 #5787
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ist Jörg JW?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Jörg
 2003-10-16 20:17
#5788 #5788
User since
2003-10-16
19 Artikel
BenutzerIn
[default_avatar]
Jörg ist Jörg V von coder-world
Bist du EB von coder-world?
[E|B]
 2003-10-16 21:19
#5789 #5789
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ah! Der Jörg!
Kenne dich nur von Coder-World.de. Warst du auch auf perl.de? Hab ich gar nicht mitbekommen... :D

Quote
Bist du EB von coder-world?


Was heißt von Coder-World.de? Ich bin zwar registriert, schreibe aber wenig. Ich bin [E|B] vom Perl-Community Team! ;-)
Ahja... Ist das dein Post: http://forum.perl.de/bb/viewtopic.php?t=177
:D\n\n

<!--EDIT|[E|B]|1066327352-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
[E|B]
 2003-10-16 22:14
#5790 #5790
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Gib die Datei doch mal mit "print <HANDLE>;" aus...
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
<< |< 1 2 3 4 5 >| >> 43 Einträge, 5 Seiten



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