webForumDet fria alternativet

Uppladdning och binära filer

4 svar · 393 visningar · startad av Muzzafarath

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#1

Halloj, har nästan fått mitt upload skript att fungera nu. Det är så att laddar man upp en binärfil så händer det något... T.ex laddar jag upp en zip fil så säger Winzip att det inte är en zipfil.

Läste lite i CGI.pm dokumentationen, den sa att om man har ett system som skiljer på text- och binärfiler (t.ex Windows, som jag kör) måste man veta hur man ska handskas med dem binärfiler/textfiler på rätt sätt. Det stod att man skulle kolla i the Camel Book. Har inte kamelboken, någon som känner för att förklara för mig hur jag ska handskas med detta problem?

[Redigerat av Muzzafarath den 03 aug 2000]

RobbanMedlem sedan dec. 19992 555 inlägg
#2

binmode FILHANTAG;

Skall användas innan skrivning eller läsning sker till/från ett filhantag (gäller även STDIN och STDOUT).

http://www.perl.com/pub/doc/manual/html/pod/perlfunc/binmode.html
http://www.perl.com/pub/doc/manual/html/pod/perlport.html#DOS_and_Derivatives
http://www.perl.com/newdocs/pod/perlopentut.html#Binary_Files

------------------
Robban < robban@lipogram.com >

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#3

Hmm, tack... Skall jag köra binmode på både filerna (alltså på både den som jag läser från och den som jag skriver till)? Här är lite av koden som jag använder:

$fh = $query->upload('file');

binmode($fh);

open(F, ">$files_folder/$file_server_name");

bimode(F);

while($bytesread = read($fh, $buffer, 1024))
{
print F $buffer;
}

close(F);
close($fh);

Gör jag något fel? Kommenterar jag ut båda binmode så kan jag ladda upp text filer, men har jag kvar dem kan jag inte ladda upp något alls... (I den "skarpa" versionen av det här scriptet måste jag ju naturligtvis lägga till någon koll för att se om jag ska ladda upp i binärt eller text, men det lägger jag till sedan).

[Redigerat av Muzzafarath den 04 aug 2000]

RobbanMedlem sedan dec. 19992 555 inlägg
#4

Har faktiskt inte kollat hur det där fungerar med CGI.pm. Du kan ju alltid prova att köra utan binmode($fh); och se om det gör någon skillnad.

När det gäller den andra förekomsten av binmode() så är den på rätt ställe, men felstavad till bimode(). :)

Men det kanske bara är en felskrivning i inlägget?

------------------
Robban < robban@lipogram.com >

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#5

Tack så mycket! binmode() var felstavat! Allting funkar bra nu!

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)