Dateien vom Webserver senden per XB2.NET

Xb2.Net von Boris Borzic

Moderator: Moderatoren

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Dateien vom Webserver senden per XB2.NET

Beitrag von brandelh »

Hi,

ja, File2Str() nutze ich, weil irgendwann einmal jemand geschrieben hat, memoread() wäre
vom charset abhängig, das kann ich zwar bis heute nicht erkennen, aber man weiß ja nie ;-)
Die Funktion nutzt fopen() fread() etc und steht - meine ich - auch in der Wissensbasis.

Die Größe entspricht der Länge der PDF in der Speichervariablen cPDF, die auch übergeben wird.
Es kann sein, dass dies nicht genau gleich ist wie auf dem Datenträger (Sektoren ...).
Gruß
Hubert
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Dateien vom Webserver senden per XB2.NET

Beitrag von ramses »

Hallo

@Martin, danke für den Typ mit der Fehlermeldung (404)

Verschwende nicht allzuviel Zeit mit dem Header Feld Content-Length, denn wenn du die Rückgabe über die Objekt Variable r:Content = zurückgibst setzt das Objekt (xb2Net) den Wert automatisch mit dem richtigen Wert, egal was du vorher da reingeschrieben hast.

Für den Download habe ich noch zwei andere Variablen gefunden die helfen den Traffic zu verkleinern, hilft besonders wenn die Upload - Rate nicht allzuhoch ist. Ich habe im HTTP_Server nach dem setzten des CompressLevels folgende beiden Variablen gesetzt:

soServer:CompressHttp10 := .t.
soServer:CompressTypes += "application/pdf;text/css;" // Erweitern um pdf / css

Bei meinem Versuch mit einer PDF wurde der Traffic dann um 40% kleiner. Toll, muss eh mit dem Traffic kämpfen.

Die MemoRead() Funktion hat mir früher grosse Probleme bereitet, bis ich Sie als Ursache erkannt habe, ich verwende Sie seit Jahren grundsätzlich nicht mehr. (Nur oben zum Test) Ich habe mir eine eigene Funktion gebaut die mit FileStr() aus den Tools in einer Schlaufe die Datei einliest und mit der Filelänge vergleicht und evtl. bei ungleicher Länge erneut das Lesen versucht.
Das Problem war dass wenn im Netzwek mehrere User gleichzeitig die Datei lesen wollten immer einer oder mehrere einen NullString zurückbekamen.



@Hubert

Ich habe die Vorgabe dem Nutzer die PDF anzuzeigen damit er Sie primär sofort ohne weitere Klickerei Ausdrucken kann, das Speichern ist nur Sekundär gewollt, die wenigsten Benutzer Speichen dann die PDF noch. Ab und zu mal die Chefs oder der QM-Typ, zur Dokumentation bestimmter Abläufe, deshalb ist es mir ja so wichtig dass der Dateiname passt.


Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Dateien vom Webserver senden per XB2.NET

Beitrag von Martin Altmann »

Moin Carlo,
keine Sorge - Content-Length habe ich wieder verworfen, da der Browser tatsächlich die korrekte Größe mitbekommt. Stelle jetzt auch das Memoread() auf File2Str() um.
Muss sowieso das ganze Mailing per See4XB umstellen, da das mit den Threads so nicht klappt - da mache ich das in dem Zug gleich mit.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Stephan Borst
Rookie
Rookie
Beiträge: 12
Registriert: Mi, 15. Jun 2016 10:33

Re: Dateien vom Webserver senden per XB2.NET

Beitrag von Stephan Borst »

Hallo,
Mein problem mit senden von ein PDF von WebServer nach ein Browser hab ich im attachment erklart.

Diesem Topic ist alt, aber vielleicht hat jemand neues ideen bekommen.

Gruß, Stephan
Dateianhänge
ViewPDFdocuments.pdf
(238.22 KiB) 384-mal heruntergeladen
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Dateien vom Webserver senden per XB2.NET

Beitrag von Martin Altmann »

Nun,
Du musst Mime-encoding setzen und wahrscheinlich application/pdf (oder so ähnlich) angeben!
Bin gerade im Urlaub und kann es nicht prüfen.

Google is your friend: http://stackoverflow.com/questions/3122 ... -pdf-files

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten