Announcement

Collapse
No announcement yet.

filedownload probleme file incomplete

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • filedownload probleme file incomplete

    Hallo zusammen,
    hoffentlich könnt ihr mir helfen. bin schon ziemlich am verzeifeln ;(
    also folgendes: meine aufgabe ist es (was ich schon ziemlich umständlich finde)
    mich automatisch auf eine website einzuloggen und eine pdf-datei per link auf der seite downzuloaden.
    login funktioniert wunderbar mit .net webbrowser. nur das problem bei dem file download ist dieser nach 50 kb einfach abbricht ohne fehlermeldung. die datei ist dann einfach nicht vollständig auf der platte.
    habe mehrere varianten schon getestet zB

    Dim Client As WebClient = New WebClient()
    Client.DownloadFile(Me.txtFileName.Text, "c:\datei.pdf")

    oder auch mit HttpWebResponse, HttpWebRequest .GetResponse ...

    immer das gleicher ergebnis .. 50 kb..

    mein verdacht ist, dass es daran liegt dass es eine https seite ist und die eingeloggte session nicht für den download verwendet wird.
    aber wie soll ich sonst vorgehn ;(
    bräuchte sowas wie ein "ziel speichern unter" für den link!
    die pdf im browser anzeigen funktioniert

    bitte helft mir!
    danke im voraus

    gruß moos

  • #2
    Vielleicht hilft

    Client.DownloadFile(Me.txtFileName.Text, "c:\\datei.pdf")

    mein verdacht ist, dass es daran liegt dass es eine https seite ist und die eingeloggte session nicht für den download verwendet wird.
    ???

    Wie sollte das sein?

    Der Webserver liefert die Inhalte. Er "weiss" nicht, dass in einem Fall das Ding im PDF-Viewer angezeigt wird und in einem anderen Fall gespeichert wird. Im übrigen werden alle Daten vom Webserver gespeichert und dann angezeigt.
    Christian

    Comment


    • #3
      ne ich glaub ich hab mich falsch ausgedrückt, also ich hab gemeint, dass es daran liegen könnte, dass ich mir durch das einloggen auf der seite mit passwort und loginnahmen mehr oder weniger die erlaubnis hab das pdf zu öffnen im webbrowser1. aber wenn ich nach dem login einen Client.DownloadFile(...) auf den direkten link dann hat der natürlich nix mit der eingelogten session des webbrowser mehr zu tun. wäre im prinzip genauso als würde ich mir nach dem einlogen den pdf-link per copy and paste in einem neuen browserfenster (also nicht in dem eingeloggten fenster) ausführen, dies würde nämlich zu einer neues login abfrage führn. an dem \\ liegts nicht da ich ja ne 50 kb datei bekomme
      ja also wenn ich von einem anderen nicht https server eine pdf lade funktioniert das super.
      also muss es fast gerade daran liegen. hab mal ein bißchen geforscht und hab noch was gefunden den cookiecontainer. Mit diesem kann man die cookies von der eingeloggten session dem reqest mitübergeben. ich lese alle cookies nach dem einloggen auf die seite aus und übergib sie den request:

      theRequest.CookieContainer = New CookieContainer
      theRequest.CookieContainer.Add(Pdfurl, cookieCollection)

      leider funktioniert das immer noch nicht! mach ich da irgendwas falsch mit dem container? hab mir auch mal alle cookies ausgeben lassen. weiss der request welchen cookie er für die verbindung braucht?

      andere möglichkeit wäre, da ich mir das pdf ja im browser anzeigen lassen kann, es direkt von da zu speichern. sowas wie savedialog nur ohne dass der benutzer den pfadauswählen muss. habs auch schon mal mit WebBrowser1.DocumentStream probiert, was leider nicht geklappt hat, da der nothing war ( wahrscheinlich wegen geladener pdf)

      hat jmd einen tip für mich? der direkte download wär mir natürlich am liebsten, aber bin schon froh wenn ichs irgendwie schaff die pdf lokal zu speichern!

      Comment


      • #4
        ne ich glaub ich hab mich falsch ausgedrückt, also ich hab gemeint, dass es daran liegen könnte, dass ich mir durch das einloggen auf der seite mit passwort und loginnahmen mehr oder weniger die erlaubnis hab das pdf zu öffnen im webbrowser1. aber wenn ich nach dem login einen Client.DownloadFile(...) auf den direkten link dann hat der natürlich nix mit der eingelogten session des webbrowser mehr zu tun.
        Wiederholung:

        Das kann der Webserver nicht prüfen oder feststellen

        auf den direkten link dann hat der natürlich nix mit der eingelogten session des webbrowser mehr zu tun.
        Das ist de Webserver egal. Wenn du eine HTML-Seite mit einem Link auf das PDF lädst, wird die Seite geladen. Klickst du auf den Link, wird direkt das PDF geholt.


        weiss der request welchen cookie er für die verbindung braucht?
        Der Request geht an den Webserver. Der weiss überhaupt nichts. Dem sind Cookies auch egal. Sind welche da, werden sie übermittelt, wenn nicht dann nicht

        Hingegen will der Webserver ev. bestimmte Cookies und deren Daten haben, und wenn der Request diese nicht liefert, wird dicht gemacht.

        Wenn du das alles genau wissen und verfolgen willst -> nutze Wireshark und schaue was wie übermittelt werden muss

        Problem wird sein, dass du mit ungültigen Daten da ankommst

        Vielleicht mal paar Infos über die Funktionsweise von Webservern besorgen......
        Christian

        Comment

        Working...
        X