WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Ta emot bild via POST-anrop (https://www.wn.se/forum/showthread.php?t=30010)

Vimp 2008-06-23 11:41

Måste du posta den som en bild? Kan du inte bara posta som rådata och sedan låta .NET behandla den som en bild?

etanders 2008-06-23 15:02

Visst, vilken typ av "rådata" skulle du rekommendera?

Vimp 2008-06-23 16:04

Jag tänkte att du kanske bara kan plocka ner alla bytes och skicka direkt till nästa sida. Som det är nu skapar du upp ett nytt Image-objekt med bilden. Du kan t.ex. plocka ner streamen, lagra direkt som en base64-enkodad sträng utifrån din byte-array och sedan göra tvärtom i .NET-applikationen. Dvs skippa hela biten med att spara om den som en bild i java.

etanders 2008-06-23 16:27

Det jag har som utgångspunkt är Image-objektet i java. Hur konverterar man det bäst till en bytearray? Dessutom måste jag ju koda det som jpeg (eller annat bildformat) eftersom javas Image är en intern representation.

Vimp 2008-06-24 11:08

Måste du ta emot en Image i parametern? När du postar bilden till java-applikationen, får du då inte en byte-array? Den byte-arrayen kan du sedan skicka vidare utan modifikation och posta till nästa sida, antingen som den är, eller som t.ex. en base64-kodad sträng.

Genom att göra om den till ett objekt i java så måste du på något sätt serialisera den eller skapa en ny bild (som du gör nu). Det bästa är om du kan skicka vidare den som den är till .NET-applikationen.

etanders 2008-06-24 14:23

Fast grejen är att jag aldrig postar någon bild till javaapplikationen. "Originalet" är Image-objektet...

Vimp 2008-06-24 14:35

Ahaa, jag hade fått för mig att du laddade upp bilden till java-applikationen och bara skulle vidarebefordra den till ASP.NET-sidan. My mistake.

Om du tar base64-strängen direkt till ASP.NET-sidan och försöker visa (utan att posta från javan), kan du då visa upp bilden?

etanders 2008-06-24 14:56

Citat:

Originally posted by etanders@Jun 19 2008, 00:01
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.

Se ovan från ett tidigare svar i denna tråd. I någon mening har jag ju tillgång till rätt data, det gäller bara att konvertera den mellan olika format tills det blir rätt...

Vimp 2008-06-24 15:33

Du kanske kan ha en web service som tar emot din base64-sträng?


Alla tider är GMT +2. Klockan är nu 11:31.

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