Uit m'n hoofd:
PHP:
1
2
3
4
5
6
| <?php
$fileSize = filesize($file);
header(sprintf('Content-Disposition: attachment; filename=%s; size=%d',
urlrawencode($fetch['original_filename']),
$fileSize));
?> |
Als bovenstaande niet (goed) werkt:
PHP:
1
2
3
4
5
6
| <?php
$fileSize = filesize($file);
header(sprintf('Content-Disposition: attachment; filename="%s"; size=%d',
addslashes($fetch['original_filename']),
$fileSize));
?> |
Het is me niet helemaal duidelijk welke van deze 2 de juiste methode is.
meer info:
http://php.net/manual/en/function.rawurlencode.php
Content-Length is trouwens niet de lengte van de bijlage, maar de lengte van de gehele HTTP response body. Als de HTTP response meerdere bijlages bevat, is Content-Length de grootte van alle data bij elkaar. Hierom zal de browser waarschijnlijk niet vertrouwen op Content-Length voor de grootte van het bestand; simpelweg omdat dat niet hoort. Content-Length wordt ook alleen gebruikt om te weten wanneer hij het hele HTTP response ontvangen heeft en hij de connectie eventueel kunt sluiten of een nieuw HTTP response kan ontvangen.
Lees ook:
2.3 The Filename Parameter
[...]
Current [RFC 2045] grammar restricts parameter values (and hence
Content-Disposition filenames) to US-ASCII. We recognize the great
desirability of allowing arbitrary character sets in filenames, but
it is beyond the scope of this document to define the necessary
mechanisms. We expect that the basic [RFC 1521] `value'
specification will someday be amended to allow use of non-US-ASCII
characters, at which time the same mechanism should be used in the
Content-Disposition filename parameter.
uit:
http://www.ietf.org/rfc/rfc2183.txt
Content-Description is niet nodig en hoeft zeker niet de filename te bevatten:
3. Examples
Here is a an example of a body part containing a JPEG image that is
intended to be viewed by the user immediately:
Content-Type: image/jpeg
Content-Disposition: inline
Content-Description: just a small picture of me
<jpeg data>
The following body part contains a JPEG image that should be
displayed to the user only if the user requests it. If the JPEG is
written to a file, the file should be named "genome.jpg". The
recipient's user might also choose to set the last-modified date of
the stored file to date in the modification-date parameter:
Content-Type: image/jpeg
Content-Disposition: attachment; filename=genome.jpeg;
modification-date="Wed, 12 Feb 1997 16:29:51 -0500";
Content-Description: a complete map of the human genome
<jpeg data>
uit:
http://www.ietf.org/rfc/rfc2183.txt
-111 edits later-
volgens mij is-ie nu goed
[
Voor 215% gewijzigd door
Gamebuster op 08-02-2011 14:14
]