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 ...).
Dateien vom Webserver senden per XB2.NET
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Dateien vom Webserver senden per XB2.NET
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
@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
Gruss Carlo
- Martin Altmann
- Foren-Administrator
- Beiträge: 16536
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 113 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien vom Webserver senden per XB2.NET
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
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
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.
-
- Rookie
- Beiträge: 12
- Registriert: Mi, 15. Jun 2016 10:33
Re: Dateien vom Webserver senden per XB2.NET
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
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) 393-mal heruntergeladen
- Martin Altmann
- Foren-Administrator
- Beiträge: 16536
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 113 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien vom Webserver senden per XB2.NET
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
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
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.