[PHP] Foute interpretatie ZIP header

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 14:49
Ik heb een script dat nu al dik 5 jaar probleemloos op mijn server loopt.

Het genereert een specifiek bestand dat als module in een spel (als mod) ingeladen kan worden.
Van groot belang is dat de INHOUD van het bestand in "ZIP" formaat is, maar de bestandsextensie als "SCS" wordt aangeboden als download.

Dit heeft jarenlang goed gewerkt maar sinds pak 'm beet een paar weken geleden klagen sommige gebruikers dat ze het bestand niet als "SCS bestand" krijgen aangeboden maar als "ZIP bestand", en in sommige gevallen zelfs als downloadbare map. Dit is echt bizar omdat er verder server side niets is veranderd. We hebben wat dieper gezocht in de omstandigheden waaronder dit gebeurt en het blijkt dat iedere gebruiker die het SCS bestand als ZIP krijgt aangeboden Firefox gebruikt.

Er blijkt dus schijnbaar iets te zijn veranderd in de manier waarop Firefox deze download verwerkt.

De code voor het aanbieden van de download is als volgt
code:
1
2
3
4
5
6
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$defpack");
header("Content-length: " . filesize($archive_file_name));
header("Pragma: no-cache");
header("Expires: 0");
readfile("$archive_file_name");


De bestandsnaam is expliciet "SCS", en niet "ZIP".

Opera, Chrome, Edge etc hebben dus geen probleem hiermee, maar Firefox plotseling wel. Maar wederom, alleen bij sommige gebruikers. Ik gebruik zelf bijv. Firefox en bij mij werkt alles naar behoren.

Zeer vervelend probleem en erg lastig te troubleshooten.
8)7

Misschien heeft iemand een helder idee?

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13

Beste antwoord (via ScuL op 11-01-2021 11:46)


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
itons schreef op maandag 11 januari 2021 @ 11:41:
Haal de content-type header er af
Nee, maak de content-type application/octet-stream i.p.v. application/zip.

Tenzij er een specifiek mime-type voor "SCS bestanden" is (geen idee, ik weet niks van game mods), in dat geval gebruik je die natuurlijk, maar dat zal wel niet.

[ Voor 34% gewijzigd door RobIII op 11-01-2021 11:46 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Alle reacties


Acties:
  • 0 Henk 'm!

  • itons
  • Registratie: Oktober 2003
  • Niet online
Haal de content-type header er af

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
itons schreef op maandag 11 januari 2021 @ 11:41:
Haal de content-type header er af
Nee, maak de content-type application/octet-stream i.p.v. application/zip.

Tenzij er een specifiek mime-type voor "SCS bestanden" is (geen idee, ik weet niks van game mods), in dat geval gebruik je die natuurlijk, maar dat zal wel niet.

[ Voor 34% gewijzigd door RobIII op 11-01-2021 11:46 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 14:49
Helder idee, dank voor het lichtpunt. Het lijkt in eerste instantie goed te werken.
Ik denk wellicht dat sommige browsers pietluttiger zijn geworden in het correct interpreteren van deze headers waar het vroeger geen verschil maakte

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ScuL schreef op maandag 11 januari 2021 @ 11:49:
Ik denk wellicht dat sommige browsers pietluttiger zijn geworden in het correct interpreteren van deze headers waar het vroeger geen verschil maakte
Niet pietluttiger, correcter (klaarblijkelijk). Jij zegt met die content-type: application/zip: "hier heb je een zip bestand". Dat je daar de SCS bestandsextensie aan hangt: boeie. Je kunt een .jpg ook renamen naar .mp3. Dat maakt 't nog geen mp3 bestand ;)

[ Voor 11% gewijzigd door RobIII op 11-01-2021 12:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij