View Single Post
Trigonoceps occipita
vidarlo's Avatar
Donor
Igjen, sjå på php, libcurl/curl-kommandoen, apache, og mshtml.dll. Det er _mindre_ arbeid å binde slikt mot et eksisterande API enn å finne opp hjulet.

Og http er som _skapt_ for oppgåva. Det samme er python eller perl. VB er derimot litt mindre egna. I python/perl er det rundt 25 linjer kode kan eg tenke meg, i bash er det ei eller 6 linjer, alt etter korleis ein gjer det.

Og om du i fullt alvor meiner du kan gjere det via cmd-interface, så er svaret delvis ja, ftp.exe finst vel, men du gjer livet enklare for deg sjølv ved å nytte eit skikkeleg api. Men ftp forutset at remote kjører ftp-daemon. Ellers må du nok til med netcat, og då kan du akkurat like godt lære deg sockets.
Men som sagt, der er ørten filoverføringsprotokoller der ute. Ver så snill, ikkje lag ein til! Det er ikkje så lett som du trur å få til noko slikt.

Og med det meiner eg at du gjerne vil ha sjekksum, slik som sha1, for blokker av fila sånn at du slepp å overføre heile på nytt ved feil o.l o.l.

Kode

#!/bin/bash
#Simple example for a remote put function. Requires a remote http server accepting put file called foo.
URL="http://localhost/put.php" #URL to script. With protocol.
lfile="foobar" #Local file to put
donothing="5" # How long to wait before checking for changes in file?
while true
  do
  echo -n "."
  oldhash=$hash
  hash=$(sha1sum $lfile | awk '{print $1}') # Generate a hash for $lfile, and store it in $hash.
      if [ "$hash" != "$oldhash" ]
          then
          echo "Change detected. Uploading."
          curl -F file=@$lfile $URL
      fi
      sleep $donothing
done
Sånn i tilfelle du lurte. Det der fungerer.
Sist endret av vidarlo; 28. mars 2006 kl. 22:48.