Hallo, Manuel,
Man kennt ja beim IE, dass wenn man ein Bild oder ein anderes Link-Ziel speichern will, dass der da mal gerne eine Zahl (meist eins) in eckigen Klammern zwischen Dateiname und DatenNamensErweiterung packt. So wird aus Bild.bmp dann Bild[1].bmp. Niemand weiss warum genau.
Damit mehrere Dateien mit gleichem Namen im Cache existieren können, wird eine laufende Nummer angefügt. AFAIK.
Jetzt ist mir diesertage aufgefallen, dass der IE beim Klicken auf den Link mich fragte, was er denn mit der Datei Bild%2Ebmp machen sollte.
Welchen Content-Type sendest du?
Eventuell solltest du auch http://www.ietf.org/rfc/rfc2183.txt lesen, aber bessere beispiele gibt es in den Benutzerkommentaren zu http://www.php.net/manual/en/function.header.php (siehe unten auf der Seite).
Bspw. in PHP:
header("Content-Type: image/bmp");
header("Content-Disposition: filename=dateiname.bmp");
header("Content-length: ".$dateigroesse); // Evtl. mit filesize() und fpassthru() arbeiten
header("Cache-control: private"); // Scheinbar für den IE
(... Dateiinhalt senden ...)
Erklärungen finden sich auf obiger Seite, auch Beispiele speziell für den Internet Explorer. Ich kenne mich nicht wirklich damit aus.
Aha denke ich, der IE kommt mit den escapten String nicht immer klar ? (Obwohl in der Statuszeile Bild.bmp stand). Also bin ich mal hin, und lasse die Links zu den Attachments mal OHNE escaption ausgeben. Jetzt kommt der IE komplett aus dem Takt, nämlich will er die Datei unter dem Namen "Bild" abspeichern, so ganz ohne Erweiterung.
Dafür ist AFAIK der Content-Disposition-Header.
Grrüße,
Mathias