Gå til innhold

opprette kopi av mottat fil


Anbefalte innlegg

Jeg lurer på hvordan jeg skal lagre en fil jeg mottar i client.

 

Filen kommer slik:

       $socket->recv($innhold,$BUFFSIZE);

og $innhold inneholder filen jeg vil lagre lokalt. $file inneholder navnet på

fila.

 

Så skal jeg lagre denne fila lokalt, og må vel da opprette en tom fil med samme navn som $file, og deretter åpne den og legge inn? Tror jeg har dette riktig, men fikk det ikke til å virke.

 

Prøvde med

print "touch $file";

for å opprette fil, men med dårlig resultat.

 

Noen som har gjort det samme? :dontgetit:

Lenke til kommentar
Videoannonse
Annonse

obs-obs.

 

andre argument til open skal være en streng, dvs med string quotes (lurt å legge på or die og):

 

open FILE, ">/path/$file" or die "something went wrong: $!";

 

print FILE $innhold; # trenger ingen string quotes her.

 

close FILE;

 

Videre, unngå å bruke systemkall hvis mulig. for å skrive til en fil, trenger du ikke "touche" den.

 

open FILE,">filnavn"; # vil lage "filnavn".

 

hvis du likevel vil touch'e, se på modulen File::Touch

http://search.cpan.org/~nwetters/File-Touch-0.01/Touch.pm

Lenke til kommentar

Noe gjør jeg feil, men ser ikke hva.. så jeg poster koden i håp om hjelp:

   elsif($answer =~ /get/)
   {
       @kom = split(" ", $answer);
       $file = $kom[1];

       $socket->recv($innhold,$BUFFSIZE);

       open(FILE,">$file") or die "Can`t open file $file for writing!";
       print FILE $innhold;
       close(FILE);
   }

$innhold inneholder filen som ble spurt etter. Og $file inneholder filnavnet. Split'en er for å fjerne get foran filnavnet.

 

Hvorfor lager ikke dette en ny fil? Alt den gjør er å skrive ut filen til skjerm. Det viser at jeg mottar filen, men jeg ber den alikevel ikke om å skrive ut filen slik jeg ser det. Noen forklaring på dette?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...