FileServer

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Florian

Betreff: FileServer

BeitragDi, Jan 24, 2006 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Beschreibung

Alle zuherunterladen Dateien in den Programm Kopieren.

Programm starten


Bild von Test Server

user posted image

Code: [AUSKLAPPEN]


Global  IP

Global  Accept$
Global  Accept_Language$
Global  Accept_Encoding$
Global  User_Agent$
Global  Host$
Global  Connection$
 
Global  Befehl$
Global  Datei$
Global  Parameter$

DateiTyp=1


ServerIP=CreateTCPServer(80)
TCPTimeouts 30000,30000

While Not KeyHit(1)
 IP=AcceptTCPStream(ServerIP)
 If IP<>0 Then 
  Repeat
   Zeile$=ReadLine$(IP)
   If Mid$(Zeile$,1,8)="Accept: " Then
    Accept$=Mid$(Zeile$,9)
   ElseIf Mid$(Zeile$,1,17)="Accept-Language: " Then
    Accept_Language$=Mid$(Zeile$,18)
   ElseIf Mid$(Zeile$,1,17)="Accept-Encoding: " Then
    Accept_Encoding=Mid$(Zeile$,18)
   ElseIf Mid$(Zeile$,1,12)="User-Agent: " Then
    User_Agent$=Mid$(Zeile$,13)
   ElseIf Mid$(Zeile$,1,6)="Host: "Then
    Host$=Mid$(Zeile$,7)
   ElseIf Mid$(Zeile$,1,12)="Connection: " Then
    Connection$=Mid$(Zeile$,13)
   ElseIf Mid$(Zeile$,1,4)="GET " Then
    Befehl$="GET"
    Parameter$=Mid$(Zeile$,5)
    PosZeile=Instr(Parameter$," ")
    If PosZeile=0 Then
     Datei$=Parameter$
    Else
     Datei$=Mid$(Parameter$,2,PosZeile-2)
    EndIf

    If Datei$="" Then Datei$="Index.html"
   
    DateiType$=""
    DateinameLang=Len(Datei$)   
    For P=DateinameLang To 1 Step -1
     If Mid$(Datei$,P,1)="." Then
      DateiType$=Mid$(Datei$,P+1)
     EndIf
    Next 

    ContentType$=MIMETyp$(DateiType$)

    If FileType(Datei$)<>DateiTyp Then
     CloseTCPStream IP
     IP=0
     Exit
    EndIf
   
    DateiLang=FileSize(Datei$)

    WriteLine IP,"HTTP/1.0 200 OK"
    WriteLine IP,"Accept-Ranges: bytes"
    WriteLine IP,"Cache-Control: non-cache, pre-check=0, post-check=0"
    WriteLine IP,"Expires: 0"
    WriteLine IP,"Pragma: no-cache"
    WriteLine IP,"Transfer-Encoding: chunked"
    WriteLine IP,"Content-Length: "+DateiLang
    WriteLine IP,"Content-Type: "+ContentType$         
    WriteLine IP,""   
 
    DateiNr=ReadFile(Datei$)
    While Not(Eof(DateiNr)) 
     WriteByte IP,ReadByte(DateiNr)
    Wend
    Delay 1000
    CloseFile DateiNr
    CloseTCPStream IP
    IP=0
    Exit
   EndIf
  Until Eof(IP) Or Zeile$=""
  If IP<>0 Then
   CloseTCPStream IP
   IP=0
  EndIf
 EndIf
 Delay 1
Wend

Function MIMETyp$(Erweiterung$)
 Select Lower$(Erweiterung$)
  Case "dwg"
   Return "application/acad";AutoCAD-Dateien (nach NCSA)
  Case "asd","asn"
   Return "application/astound";Astound-Dateien
  Case "tsp"
   Return "application/dsptype";TSP-Dateien
  Case "dxf"
   Return "application/dxf";AutoCAD-Dateien (nach CERN)
  Case "spl"
   Return "application/futuresplash";Flash Futuresplash-Dateien
  Case "gz"
   Return "application/gzip";GNU Zip-Dateien
  Case "ptlk"
   Return "application/listenup";Listenup-Dateien
  Case "hqx"
   Return "application/mac-binhex40";Macintosh Binärdateien
  Case "mbd"
   Return "application/mbedlet";Mbedlet-Dateien
  Case "mif"
   Return "application/mif";FrameMaker Interchange Format Dateien
  Case "xls","xla"
   Return "application/msexcel";Microsoft Excel Dateien
  Case "hlp","chm"
   Return "application/mshelp";Microsoft Windows Hilfe Dateien
  Case "ppt","ppz","pps","pot"
   Return "application/mspowerpoint";Microsoft Powerpoint Dateien
  Case "doc","dot"
   Return "application/msword";Microsoft Word Dateien
  Case "bin","exe","com","dll","class"
   Return "application/octet-stream";Ausführbare Dateien
  Case "oda"
   Return "application/oda";Oda-Dateien
  Case "pdf"
   Return "application/pdf";Adobe PDF-Dateien
  Case "ai","eps","ps"
   Return "application/postscript";Adobe PostScript-Dateien
  Case "rtc"
   Return "application/rtc";RTC-Dateien
  Case "rtf"
   Return "application/rtf";Microsoft RTF-Dateien
  Case "smp"
   Return "application/studiom";Studiom-Dateien
  Case "tbk"
   Return "application/toolbook";Toolbook-Dateien
  Case "vmd"
   Return "application/vocaltec-media-desc";Vocaltec Mediadesc-Dateien
  Case "vmf"
   Return "application/vocaltec-media-file";Vocaltec Media-Dateien
  ;Case "htm","html","shtml","xhtml"
  ; Return "application/xhtml+xml";XHTML-Dateien
  Case "xml"
   Return "application/xml";XML-Dateien
  Case "bcpio"
   Return "application/x-bcpio";BCPIO-Dateien
  Case "z"
   Return "application/x-compress";zlib-komprimierte Dateien
  Case "cpio"
   Return "application/x-cpio";CPIO-Dateien
  Case "csh"
   Return "application/x-csh";C-Shellscript-Dateien
  Case "dcr","dir","dxr"
   Return "application/x-director";Macromedia Director-Dateien
  Case "dvi"
   Return "application/x-dvi";DVI-Dateien
  Case "evy"
   Return "application/x-envoy";Envoy-Dateien
  Case "gtar"
   Return "application/x-gtar";GNU tar-Archivdateien
  Case "hdf"
   Return "application/x-hdf";HDF-Dateien
  Case "php","phtml"
   Return "PHP-Dateien";application/x-httpd-php
  Case "js"
   Return "application/x-javascript";serverseitige JavaScript-Dateien
  Case "latex"
   Return "application/x-latex";LaTeX-Quelldateien
  Case "bin"
   Return "application/x-macbinary";Macintosh Binärdateien
  Case "mif"
   Return "application/x-mif";FrameMaker Interchange Format Dateien
  Case "nc","cdf"
   Return "application/x-netcdf";Unidata CDF-Dateien
  Case "nsc"
   Return "application/x-nschat";NS Chat-Dateien
  Case "sh"
   Return "application/x-sh";Bourne Shellscript-Dateien
  Case "shar"
   Return "application/x-shar";Shell-Archivdateien
  Case "swf","cab"
   Return "application/x-shockwave-flash";Flash Shockwave-Dateien
  Case "spr","sprite"
   Return "application/x-sprite";Sprite-Dateien
  Case "sit"
   Return "application/x-stuffit";Stuffit-Dateien
  Case "sca"
   Return "application/x-supercard";Supercard-Dateien
  Case "sv4cpio"
   Return "application/x-sv4cpio";CPIO-Dateien
  Case "sv4crc"
   Return "application/x-sv4crc";CPIO-Dateien mit CRC
  Case "tar"
   Return "application/x-tar";tar-Archivdateien
  Case "tcl"
   Return "application/x-tcl";Scriptdateien
  Case "tex"
   Return "application/x-tex ";TeX-Dateien
  Case "texinfo","texi"
   Return "application/x-texinfo";Texinfo-Dateien
  Case "t","tr","roff"
   Return "application/x-troff";TROFF-Dateien (Unix)
  Case "man","troff"
   Return "application/x-troff-man";TROFF-Dateien mit MAN-Makros (Unix)
  Case "me","troff"
   Return "application/x-troff-me";TROFF-Dateien mit ME-Makros (Unix)
  Case "me","troff"
   Return "application/x-troff-ms";TROFF-Dateien mit MS-Makros (Unix)
  Case "ustar"
   Return "application/x-ustar";tar-Archivdateien (Posix)
  Case "src"
   Return "application/x-wais-source";WAIS Quelldateien
  Case "zip"
   Return "application/zip";ZIP-Archivdateien
  Case "au","snd"
   Return "audio/basic";Sound-Dateien
  Case "es"
   Return "audio/echospeech";Echospeed-Dateien
  Case "tsi"
   Return "audio/tsplayer";TS-Player-Dateien
  Case "vox"
   Return "audio/voxware";Vox-Dateien
  Case "aif","aiff","aifc"
   Return "audio/x-aiff";AIFF-Sound-Dateien
  Case "dus","cht"
   Return "audio/x-dspeeh";Sprachdateien
  Case "Mid","midi"
   Return "audio/x-midi";MIDI-Dateien
  Case "mp2"
   Return "audio/x-mpeg";MPEG-Dateien
  Case "ram","ra"
   Return "audio/x-pn-realaudio";RealAudio-Dateien
  Case "rpm"
   Return "audio/x-pn-realaudio-plugin";RealAudio-Plugin-Dateien
  Case "stream"
   Return "audio/x-qt-stream";Quicktime-Streaming-Dateien
  Case "wav"
   Return "audio/x-wav";WAV-Dateien
  Case "dwf"
   Return "drawing/x-dwf";Drawing-Dateien
  Case "cod"
   Return "image/cis-cod";CIS-Cod-Dateien
  Case "ras"
   Return "image/cmu-raster";CMU-Raster-Dateien
  Case "fif"
   Return "image/fif";FIF-Dateien
  Case "gif"
   Return "image/gif";GIF-Dateien
  Case "ief"
   Return "image/ief";IEF-Dateien
  Case "jpeg","jpg","jpe"
   Return "image/jpeg";JPEG-Dateien
  Case "png"
   Return "image/png";PNG-Dateien
  Case "tiff","tif"
   Return "image/tiff";TIFF-Dateien
  Case "mcf"
   Return "image/vasa";Vasa-Dateien
  Case "wbmp"
   Return "image/vnd.wap.wbmp";Bitmap-Dateien (WAP)
  Case "fh4","fh5","fhc"
   Return "image/x-freehand";Freehand-Dateien
  Case "pnm"
   Return "image/x-portable-anymap";Anymap Dateien
  Case "pbm"
   Return "image/x-portable-bitmap";Bitmap Dateien
  Case "pgm"
   Return "image/x-portable-graymap";Graymap Dateien
  Case "ppm"
   Return "image/x-portable-pixmap";Pixmap Dateien
  Case "rgb"
   Return "image/x-rgb";RGB-Dateien
  Case "xwd"
   Return "image/x-windowdump";X-Windows Dump
  Case "xbm"
   Return "image/x-xbitmap";XBM-Dateien
  Case "xpm"
   Return "image/x-xpixmap";XPM-Dateien
  Case "wrl"
   Return "model/vrml";Visualisierung virtueller Welten (VRML)
  Case "csv"
   Return "text/comma-separated-values";kommaseparierte Datendateien
  Case "css"
   Return "text/css";Stylesheet-Dateien
  Case "htm","html","shtml";HTML-Dateien
   Return "text/html";HTML-Dateien
  Case "js"
   Return  "text/javascript";JavaScript-Dateien
  Case "txt"
   Return "text/plain";reine Textdateien
  Case "rtx"
   Return "text/richtext";Richtext-Dateien
  Case "rtf"
   Return "text/rtf";Microsoft RTF-Dateien
  Case "tsv"
   Return "Text/tab-separated-values";tabulator-separierte Datendateien
  Case "wml"
   Return "Text/vnd.wap.wml";WML-Dateien (WAP)
  Case "wmlc"
   Return "application/vnd.wap.wmlc";WMLC-Dateien (WAP)
  Case "wmls"
   Return "Text/vnd.wap.wmlscript";WML-Scriptdateien (WAP)
  Case "wmlsc"
   Return "application/vnd.wap.wmlscriptc";WML-Script-C-dateien (WAP)
  Case "xml"
   Return "Text/xml";XML-Dateien
  Case "etx"
   Return "Text/x-setext";SeText-Dateien
  Case "sgm","sgml"
   Return "Text/x-sgml";SGML-Dateien
  Case "talk","spc"
   Return "Text/x-speech";Speech-Dateien
  Case "mpeg","mpg","mpe"
   Return "video/mpeg";MPEG-Dateien
  Case "qt","mov"
   Return "video/quicktime";Quicktime-Dateien
  Case "viv","vivo"
   Return "video/vnd.vivo";Vivo-Dateien
  Case "avi"
   Return "video/x-msvideo";Microsoft AVI-Dateien
  Case "movie"
   Return "video/x-sgi-movie";Movie-Dateien
  Case "vts","vtts"
   Return "workbook/formulaone";FormulaOne-Dateien
  Case "3dmf","3dm","qd3d","qd3"
   Return "x-world/x-3dmf";3DMF-Dateien
  Case "wrl"
   Return "x-world/x-vrml"
 End Select
End Function
     
[/b]
  • Zuletzt bearbeitet von Florian am Di, Jan 24, 2006 20:14, insgesamt einmal bearbeitet

SoNenTyp

BeitragDi, Jan 24, 2006 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist bestimmt brauchbar und du schreibst auch immer Recht guten Code, aber es währe nett wenn du mal zu deinen Programm eine kleine Beschreibung hinzu geben würdest, damit auch jeder weiß was du eigentlich meinst ohne 200 Zeilen Code zu lesen.
Gruss Der Typ.

User posted image
 

Florian

BeitragDi, Jan 24, 2006 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Beschreibung

Die Daten die heruntergeladen werden soll zum Programm Ordner Kopieren.

Das Programm starten.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group