Kom ihåg mig?
Home Menu

Menu


Ta emot bild via POST-anrop

 
Ämnesverktyg Visningsalternativ
Oläst 2008-06-18, 17:20 #1
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
Jag kör C#/ASP.NET 3.5 och vill ta emot en uppladdad bild från en källa utanför C#-applikationen. Jag gör ett POST-anrop till en .ashx-sida där jag vill ta hand om bilden för att sedan kunna spara i databasen. Har försökt på olika sätt, men lyckas inte riktigt få till det.

Kod:
// ImageHandler.ashx

public class ImageHandler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    Stream stream = context.Request.InputStream;

    //Image image = Image.FromStream(stream);

    byte[] bytes = new byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    string str = Convert.ToBase64String(bytes);
  }
}
Den bortkommenterade raden ger ArgumentException, "Parametern är inte giltig", så det fungerar uppenbarligen inte.

Om jag tar innehållet i str och "decodar" på http://www.toastedspam.com/decode64 så får jag fram följande

Kod:
----------11a9bf2ff31--------21523374577461
Content-Disposition: form-data; name="myImage"; filename="theFilename.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABTAHQDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
  (forts...)
Alltså lyckas ju överföringen i någon mening - det jag vill ha tag på "finns" ju... Men hur gör jag för att få ut datan (i det här fallet bilden) som är kodad här så att jag kan använda den i C#?

EDIT:
Använder man FileUpload-kontrollen i ASP.NET är det självklart inga problem att "hitta" bilden, då funkar det utmärkt med
Kod:
Image image = Image.FromStream(FileUpload1.PostedFile.InputStream);
Men i detta fall kommer alltså POST-anropet inte från ASP.NET-applikationen. Tips på lösningar på motsvarande problem i andra miljöer (t.ex. php) är också intressanta!
etanders är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 20:03.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017