Content Disposition Binära Alternativ


Senast uppdaterad: 12 feb 2013 Content-Disposition header - tvingar SaveAs i webbläsare Det finns situationer (för att spara en dokumentation i pdf-format eller ett finansiellt dokument) där du kanske vill ha en hyperlänk som leder till en fil för att presentera en SaveAs-dialogruta i webbläsaren. Sätt att göra det finns. Flakigt webbläsarstöd gör dock användningen en promenad i gruvfältet. Tvinga SaveAs med javascript i Internet Explorer Med javascript kan du skapa en dialogruta för att spara sidan som visas (om användaren tittar på Internet Explorer på din sida som är). Detta görs genom följande kod: Spara den här pageln Men vanligtvis vill du spara en annan fil, den fil som en hyperlänk leder till. För att göra det är javascript inte tillräckligt (åtminstone det finns inget sådant standard sätt) och något måste göras på servern. Tvinga SaveAs med HTTP-huvudet För att tvinga webbläsaren att visa SaveAs-dialogrutan när du klickar på en hyperlänk måste du inkludera följande rubrik i HTTP-svaret på filen som ska hämtas: Innehåll-Disposition: attachment filenameltfile name. extgt Var ltfile name. extgt är filnamnet du vill se i SaveAs-dialogrutan (som finances. xls eller mortgage. pdf) - utan lt and gt-symboler. Du måste ha följande i åtanke: Filnamnet ska vara i US-ASCII-charset och ska inte innehålla specialtecken: lt gt. . rymden. Filnamnet ska inte ha någon angiven katalogvägsinformation. Filnamnet ska bifogas i dubbla citat men de flesta webbläsare stöder filnamn utan dubbla citat. Forntida webbläsare krävde också följande (behövs inte idag, men för en dumt bevislösning kan det vara värt att göra): Content-Type header bör vara före Content-Disposition. Innehållsrubrikrubrik ska referera till en okänd MIME-typ (åtminstone tills de äldre webbläsarna går bort). Detaljerad användning howto Content-disposition stöd i Internet Explorer Det verkar som om Internet Explorer har den värsta spårningen av Content-Disposition header support. Funktionen hade många säkerhetsproblem och som följd Microsoft ändrade koden många gånger ibland helt och hållet bryta den. Övning har visat att nedladdningskoden använder en annan HTTP-huvudparser. Och om den parsern inte lyckas hantera alla rubriklinjer, kommer IE inte att ladda ner filen alls. Internet Explorer 9.0 Beroende på WinInet. dll-versionen kan det hända att filen inte laddas ned med filnamnet som innehåller följande specialtecken: lt gt. . rymden. Microsoft Knowledge Base-artiklar: 949197Hur att bygga en POST-förfrågan för multipartform-data Behöver du skapa en POST-begäran som laddar upp en fil jag tillbringade i eftermiddag försöker lista ut hur man ser ut. Detta dokument innehåller en mall som har blivit framgångsrik för mig. POST pathtoscript. php HTTP1.0 Värd: Exempel Innehållstyp: Multipartform-data, boundaryAaB03x Innehållslängd: requestlen --AaB03x innehåll-disposition: form-data namequotfield1quot-fält1 --AaB03x innehåll-disposition: form-data namequotfield2quot field2 - AaB03x content-disposition: form-data namequotuserfilequot filenamequotfilenamequot Innehållstyp: mimetype Content-Transfer-Encoding: binär Observera att du måste generera huvudlängden för innehållslängd efter att du har skapat förfrågan på kroppen (från den första --AaB03x ner, inklusive fildata), så att det i praktiken är att bygga kroppen först, få strlen () och bygga sedan huvudet på kroppens framsida. Se RFC1867 - Formbaserad filuppladdning i HTML (faqs. orgrfcsrfc1867.html) för mer information om formatet för quotmultipartform-dataquot-inlägg. Lycka till (Som postat på PHP-handbokens fsockopen-sida, av mig.) Av Chris Snyder fredagen den 28 mars 2003 Skapa ett bifogat innehållsfördelningshuvudvärde med det angivna filnamnet, om det tillhandahålls. Filnamnet är valfritt och om inget filnamn är önskat, men du vill ange alternativ. Ange filnamn till odefinierad. notera HTTP-rubriker är av ISO-8859-1 teckenuppsättningen. Om du skriver denna rubrik via ett sätt som skiljer sig från setHeader i Node. js, vill du ange binär kodning i Node. js. contentDisposition accepterar dessa egenskaper i alternativobjektet. Om filnamnet är utanför ISO-8859-1 lagras filnamnet faktiskt i ett tilläggsfält för klienter som stöder Unicode-filnamn och en ISO-8859-1-version av filnamnet genereras automatiskt. Detta anger ISO-8859-1-filnamnet för att åsidosätta den automatiska generationen eller inaktiverar generationen ihop, som standard till sant. En sträng anger ISO-8859-1-filnamnet som ska användas i stället för automatisk generation. false kommer att inaktivera inklusive ett ISO-8859-1 filnamn och innehåller endast Unicode-versionen (om inte filnamnet redan är ISO-8859-1). sann kommer att möjliggöra automatisk generation om filnamnet ligger utanför ISO-8859-1. Om filnamnalternativet är ISO-8859-1 och det här alternativet är angivet och har ett annat värde, är filnamnalternativet kodat i det utökade fältet och det här stället som återgångsfält, trots att de båda är ISO-8859-1. Anger dispositionstypen, standard för bilaga. Detta kan också vara inline. eller något annat värde (alla värden utom inline behandlas som bilaga. men kan vidarebefordra ytterligare information om båda parter är överens om det). Typen normaliseras till små bokstäver. Parsa en rubrik för innehållshantering. Detta hanterar automatiskt utvidgade parametrar (Unicode) genom att avkoda dem och ge dem under standardparameterns namn. Detta kommer att returnera ett objekt med följande egenskaper (exempel visas för strängfiler filnamnEURO rates. txt filnamnUTF-8e282ac20rates. txt): typ. Anläggningstyp (alltid små bokstäver). Exempel: bilaga parametrar. Ett objekt av parametrarna i dispositionen (namn på parameter alltid små bokstäver och förlängda versioner ersätter icke-utvidgade versioner). Exempel: Skicka en fil för nedladdning

Comments

Popular Posts