Results 1 to 7 of 7

Thread: (On)mogelijkheden van het WebBroker-framework

  1. #1
    TCrapCodeProducer JackBigMac's Avatar
    Join Date
    May 2002
    Location
    Rotterdam
    Posts
    1,293

    (On)mogelijkheden van het WebBroker-framework

    In hoeverre is de clientside van een WebBroker-applicatie bereikbaar?
    Stel, dat ik een webapplicatie open in m'n browser, is het dan mogelijk om een FTP-sessie te openen en dan bestanden te downloaden van een FTP-server naar de client? Ik weet dat een webapplicatie de response van een HTTP-request streamt naar de browser (toch?), maar het moet toch mogelijk zijn om ook files over te pompen.

    Op http://www.matlus.com is te vinden dat het wel mogelijk is om van de client naar de server een bestand te uploaden. Ik wil het dus andersom en dan ook nog es naar een FTP-server.

    Ik wil dus een FTP-sessie hebben binnen m'n webapplicatie.
    Als dit niet mogelijk is met WebBroker, kan dit dan wel met een ander soort framework (bv. WebSnap)? Het lijkt me dat dit niet echt uitmaakt, maar ik vraag het toch maar.

    Is hier iemand met vergevorderde kennis over web development die dit weet?
    It is in change that we find purpose.

  2. #2
    Een FTP sessie komt per definitie niet van een webserver, maar van een FTP server. Als je de client een bestand wilt laten downloaden van een FTP server hoef je alleen maar een link te geven naar die FTP server. Je hoeft echter geen FTP te gebruiken, je kunt een bestand ook gewoon via je webserver/WepApp laten downloaden door je response te streamen. Is dat de bedoeling of zoek je iets anders?
    Marcel

  3. #3
    TCrapCodeProducer JackBigMac's Avatar
    Join Date
    May 2002
    Location
    Rotterdam
    Posts
    1,293
    Wat ik eigenlijk wil, is het volgende:

    Ik heb een DataSetTableProducer met daarin een knop met de link (bijvoorbeeld
    'cgi-bin/App.exe/Download?fileid=2). Het path naar het bestand op de FTP-server
    is opgeslagen in de database.
    In deze action Download wordt een query uitgevoerd om het juiste path op te zoeken. In deze action wil ik ook een FTP-sessie starten en het bestand downloaden naar de client in een door de gebruiker ingestelde map.
    Het probleem is, wanneer ik een FTP-sessie start met bv. idFTP mijn server de client wordt van de FTP-sessie, omdat de webapp op de server draait. Het moet eigenlijk zo zijn, dat degene die de webapp heeft opgestart, ook de client wordt van de FTP-sessie en dat bestanden naar de client gestuurd kunnen worden.
    Ik hoop dat het duidelijk is wat de bedoeling is. Het is misschien lastig te realiseren, maar het moet toch mogelijk zijn, zou je zeggen.
    It is in change that we find purpose.

  4. #4
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Je idee is mij duidelijk, maar je maakt een logicafout: de webapplicatie zal nooit of te nimmer direct kunnen schrijven naar de harde schijf van de gebruiker.

    Wat je wel kan doen is dit:


    - app.exe/download?fileid=2 wordt aangeroepen
    - Je webapp zoekt het pad op de FTP server op
    - Je webapp maakt met bv IdFTP een connectie en download dit bestand naar een TMemoryStream
    - MemStream.Seek(0, soFromBeginning) (belangrijk, anders staat de stream aan het einde en zal niks worden verzonden)
    - De webapp geeft deze TMemoryStream dan als Response terug, samen met die 'Content-Type' header die ergens anders besproken is die ervoor zorgt dat de browser het bestand gaat downloaden
    - De gebruiker krijgt vervolgens in z'n browser het download-venster en kan het bestand opslaan




    Wat ik echter nog steeds niet snap: je gaf in de vorige thread al aan dat de FTP server op dezelfde machine draait als de webserver, waarom laat je je webapp dan niet direct het bestand uitlezen in plaats van via de FTP server? Dat scheelt enorm veel tijd die normaal nodig is voor de FTP-verbinding, je kan gewoon een TFileStream gebruiken als Response...
    Qui custodiet ipsos custodes

  5. #5
    TCrapCodeProducer JackBigMac's Avatar
    Join Date
    May 2002
    Location
    Rotterdam
    Posts
    1,293
    Ja, nu staan de webserver en de FTP-server op 1 machine, maar dat kan in de toekomst veranderen. Ik wil er nu al rekening mee houden en gebruik maken van FTP. Dat heeft ook als voordeel dat ik zelf geen statistieken hoef bij te houden: files/bytes gedownload, files/bytes geupload, aantal dagen niet gedownload enz.
    Daarnaast moet het ook mogelijk zijn om in m'n webapp een soort queue op te bouwen: de gebruiker selecteert 3 bestanden en drukt daarna op de knop 'Queue downloaden'. Volgens het verhaal van PsychoMark zou dat betekenen, dat de gebruiker bij elke bestand toch nog zelf moet bevestigen.
    It is in change that we find purpose.

  6. #6
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Ja, klopt, je kan maar 1 bestand per request ontvangen, en je hebt al helemaal geen toegang tot het bestandssysteem van de client (gelukkig), dus je zal ze of per stuk moeten verzenden of een client-side oplossing verzinnen (sommige Java classes hebben bijvoorbeeld wel toegang tot de harde schijf, maar daarvoor moeten ze een certificaat hebben en da's vrij prijzig )


    ...of je moet de bestanden downloaden vanaf de FTP server en ze daarna samenvoegen tot 1 ZIP bestand, en die naar de gebruiker sturen
    Qui custodiet ipsos custodes

  7. #7
    Overigens is dat geen beperking in de manier waarop Delphi en/of CGI's werken, maar dat is gewoon de manier waarop internet in elkaar zit. Je kunt niet bij de client op de harde schijf komen en je kunt je client ook niet foppen door hem stiekem (ook al is dat niet jouw bedoeling) naar een FTP server om te leiden.
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •