Visa ett inlägg
Oläst 2008-06-19, 00:01 #6
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
digiArt:
Det är ju en rätt naturlig lösning, så jag har redan försökt. Problemet är att context.Request.Files är tom...


Jake.Nu:
Convert.ToBase64String() gör om en byte[] till en string.
Citat:
"Converts an array of 8-bit unsigned integers to its equivalent String representation encoded with base 64 digits. ...
The elements of inArray are taken as a numeric value and converted to a String representation encoded with base 64 digits."
http://msdn.microsoft.com/en-us/library/dhx0d524.aspx
Det finns också Convert.FromBase64String() som gör om en string till en byte[].
Citat:
"Converts the specified String, which encodes binary data as base 64 digits, to an equivalent 8-bit unsigned integer array."
http://msdn.microsoft.com/en-us/library/sy...se64string.aspx
Det jag får fram i variabeln str i mitt första inlägg är hela innehållet i post-anropet i kodad form. Convert.ToBase64String gör bara om det från binär form till en sträng. I klartext är det en massa tecken i en följd.
Kod:
LS0tLS0tLS0tLTExYTlkOWVhYmI5LS0tLS0tLS0yMTUyMzU0NzUyNTY3MQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJwYXN0ZWRJbWFnZSI7IGZpbGVuYW1lPSJ0aGVGaWxlbmFtZS5qcGciDQp (forts...)
Om jag, som jag beskrev i första inlägget, kör denna sträng i en base64-decoder (http://www.toastedspam.com/decode64) får jag det resultat som jag också visade i mitt första inlägg. Där ser man först i klartext headern med Content-Disposition, Content-Type m.m. Därefter kommer själva bilden kodad i base64. Och om jag klipper ut bara den texten och kör i http://www.toastedspam.com/decode64 igen så visas faktiskt bilden, så det stämmer.

För att sammanfatta, det jag får fram ur context.Request.InputStream måste först base64-decodas en gång för att skilja ut headers och själva datan. Denna data måste sedan base64-decodas en gång till för att få själva bilden. Det är lätt att tappa bort sig här...

Det konstiga är ju att ASP.NET lyckas tyda headerinformationen, för den finns med i bl.a. context.Request.ContentType och context.Request.Headers, men context.Request.Files är som sagt tom.

Någon funktion för konvertering motsvarande den som görs på http://www.toastedspam.com/decode64 har jag inte hittat i .NET, ännu i alla fall.

Någon som har fler bra idéer?
etanders är inte uppkopplad   Svara med citatSvara med citat