AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] - Header verfälscht ermittelte Dateigröße
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] - Header verfälscht ermittelte Dateigröße

Ein Thema von DeddyH · begonnen am 18. Mär 2012 · letzter Beitrag vom 18. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#1

[PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 11:19
Ich bastle gerade an einem Download-Script. Dabei ermittle ich die Dateigröße und gebe sie als Header aus. Bei manchen Dateien wird aber im Header eine andere als die ermittelte (und korrekte, mehrfach überprüft) Größe eingetragen. Hat jemand eine Ahnung, was das sein kann? Hier noch der relevante Code:
PHP-Quellcode:
    if (file_exists($filename)){
      header("Content-Type: application/octet-stream");
      header("Content-disposition: attachment; filename=\"".basename($filename)."\"");
      header("Content-Length: ".filesize64($filename)); //hier
      header("Pragma: no-cache");
      header("Expires: 0");
      readfile($filename);
    }
Ich hatte die Größe auch schon in einer Variablen gespeichert und die dann übergeben, selbes Ergebnis.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#2

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 11:53
Hast du den Wert von filesize64 mal geloggt oder direkt ausgegeben? Nicht daß dort wirklich eine andere Größe rauskommt.
Das was in die Headern geschrieben wird auch in eine Logatei und dann das vergleichen, was du sendest und was ankommt.

Laß mal das header("Content-Length: ... weg, oder überprüfe sonstwie, ob nich ein Server diesen Wert überschreibt, bzw. selbst einträgt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 12:46
Der Server ist momentan mein eigener Rechner und ja: ich habe den Wert mehrfach überprüft, wie ich bereits schrieb. Das tritt auch nur bei einigen Dateien auf, ich habe keine Ahnung, wieso.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#4

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 13:59
Bei Dateien die gerade oder vor Kurzem erst erstellt oder verändert wurden?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 14:09
Nö. Das ist anscheinend völlig willkürlich und unabhängig von irgendwelchen Zeitstempeln oder Attributen. Die Dateigröße ist dabei auch wurscht, ich habe im Internet eine Funktion gefunden, die auch mit Dateien > 2 GB zurechtkommt, außerdem hat eine der "falschen" Dateien lediglich eine Größe von 33 MB, wobei im Header dann 178 Byte stehen. Nehme ich z.B. die iso von Win 8, dann stimmt alles. Ich habe also keinerlei Kriterium ermitteln können, wieso das Script (oder eher mein Indianer?) so herumspinnt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Florian Hämmerle
(Gast)

n/a Beiträge
 
#6

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 14:12
Könnte das Problem an der Windows-Umgebung liegen? Manche PHP Funktionalitäten laufen dort ja nicht so sauber wie sie es auf nem UNIX-System tun.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 14:18
Unmöglich ist nichts, aber bei so etwas Trivialem wie einem Header?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Florian Hämmerle
(Gast)

n/a Beiträge
 
#8

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 14:41
Wäre in der Tat sehr ärgerlich! Kommt es nur bei einer bestimmten Datei vor, oder bei mehreren? Blöde Frage aber 179 Bytes.. könnten eine Verknüpfung sein?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 14:51
Es ist auch keine Verknüpfung. Ich hatte zum Testen zuerst mein eigenes Download-Verzeichnis genommen, dann gedacht, dass ich nur Dateien aus dem "Webspace" zulassen will und daher ein paar zufällig ausgewählte Dateien daraus in das htdocs-Verzeichnis ins neu angelegte Downloads-Verzeichnis kopiert. Der Witz ist ja wirklich: lasse ich mir die ermittelte Dateigröße ausgeben (echo $filesize), dann stimmt es auf das Byte genau, erst wenn ich diese Zahl als Header übermittle habe ich das Problem.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#10

AW: [PHP] - Header verfälscht ermittelte Dateigröße

  Alt 18. Mär 2012, 15:09
Ist ja interessant. Vielleicht versuchst du mal die Reihenfolge der Header zu ändern. Ich würde auch mit Wireshark mal mitschneiden. Eventuell solltest du das Script mal auf einem "richtigen Server" (also kein Windows ) testen. Versuche doch außerdem mal, die Datentypen richtig zu behandeln und vorher strval() auf die Größe anzuwenden. Außerdem kannst du die Dateigröße mal in eine Variable zwischenspeichern. Und zu guter letzt kannst du ja mal einen anderen Workaround für das 32-Bit-Problem probieren.

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz