FAQ |
Kalender |
![]() |
#11 | ||
|
|||
Nykomling
|
Vad är det som felar? altså vilken rad?
|
||
![]() |
![]() |
![]() |
#12 | ||
|
|||
Medlem
|
Just nu är läget detta...
Kod:
public void ProcessRequest(HttpContext context) { var httpPostedFile = context.Request.Files[0]; var path = ... // sökväg för att spara filen var streamReader = new StreamReader(httpPostedFile.InputStream, System.Text.Encoding.UTF8); var image = Image.FromStream(streamReader.BaseStream); try { image.Save(path); } catch (Exception e) { var bitmap = new Bitmap(image); bitmap.Save(path); } } Kod:
System.Runtime.InteropServices.ExternalException "Ett allmänt fel uppstod i GDI+." |
||
![]() |
![]() |
![]() |
#13 | ||
|
|||
Nykomling
|
Har du kollat så inputstreamen är UTF8 ?
|
||
![]() |
![]() |
![]() |
#14 | ||
|
|||
Medlem
|
Nej, hur kan jag göra det?
Men jag har provat med alla varianter av Encoding; ASCII, BigEndianUnicode, Default, Unicode, UTF32, UTF7 och UTF8. Det är ingen skillnad alls. |
||
![]() |
![]() |
![]() |
#15 | ||
|
|||
Nykomling
|
Ok du kan ju skriva ut och jämföra.
Annars kan du testa var streamReader = new StreamReader(httpPostedFile.InputStream); eller var streamReader = new StreamReader(httpPostedFile.InputStream, true); |
||
![]() |
![]() |
![]() |
#16 | ||
|
|||
Medlem
|
Troligen fungerar C#-koden jag har nu, men frågan är om bilden kodas på rätt sätt när den sänds från javaappleten.
Jag använder java.awt.image.BufferedImage och beroende på vad jag sätter för imageType i konstruktorn, så får jag olika förvrängda resultat i .NET-applikationen... Får läsa på och experimentera mera helt enkelt ![]() |
||
![]() |
![]() |
![]() |
#17 | ||
|
|||
Har WN som tidsfördriv
|
Kod:
Image im = Bitmap.FromStream(stream); im.Save(path); Det som återstår är att kolla vilken typ av bild som du egentligen tar emot (om det är en bild öht, någon kanske skickar ett worddokument) för att sätta rätt ImageFormat. |
||
![]() |
![]() |
![]() |
#18 | ||
|
|||
Medlem
|
digiArt, det funkar inte. Blir samma fel som jag beskrev i inlägget kl 16.06.
Provade just att läsa in en jpg-fil direkt Kod:
var originalImage = Image.FromFile(context.Request.PhysicalApplicationPath + "image.jpg"); originalImage.Save(path); Jämförde också formatet hos bilderna Kod:
image.RawFormat.Guid == originalImage.RawFormat.Guid == ImageFormat.Jpeg.Guid bitmap.RawFormat.Guid == ImageFormat.MemoryBmp.Guid |
||
![]() |
![]() |
![]() |
#19 | ||
|
|||
Medlem
|
Kan du inte skapa upp din request mot sidan du postar till själv i java-applikationen och bara skicka med den informationen som behövs?
|
||
![]() |
![]() |
![]() |
#20 | ||
|
|||
Medlem
|
Jo, det är just det jag vill göra (om jag förstår dig rätt).
Mitt första problem var att få till javakoden för requesten så att jag överhuvudtaget kom åt filen i .net-applikationen. Det lyckades till slut. Mitt problem nu är hur jag ska omvandla mitt java.awt.Image-objekt till någon form av strängrepresentation som kan överföras i requesten och som jag kan lyckas omvandla tillbaka till ett System.Drawing.Image-objekt i .net. Kod:
// Java private void postImage(Image image) { BufferedImage buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); ImageIcon imageIcon = new ImageIcon(image); ImageObserver observer = imageIcon.getImageObserver(); buffImage.getGraphics().setColor(new Color(255, 255, 255)); buffImage.getGraphics().fillRect(0, 0, width, height); buffImage.getGraphics().drawImage(imageIcon.getImage(), 0, 0, observer); ByteArrayOutputStream stream = new ByteArrayOutputStream(); JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(stream); jpeg.encode(buffImage); URL url = new URL(m_postUrl); URLConnection connection = url.openConnection(); String boundary = "--------" + Long.toHexString(System.currentTimeMillis()) + "--------" + Long.toOctalString(System.currentTimeMillis()); connection.setRequestProperty("method", "POST"); connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); String output = "--" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"theFirst\"\r\n" + "Content-Type: text/plain\r\n" + "Content-Transfer-Encoding: quoted-printable\r\n\r\n" + "Testar ett litet meddelande.\r\n" + "--" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"pastedImage\"; filename=\"theFilename.jpg\"\r\n" + "Content-Type: image/jpeg\r\n" + "Content-Transfer-Encoding: base64\r\n\r\n" + Base64.encode(stream.toByteArray()) //+ new String(stream.toByteArray()) + "\r\n" + "--" + boundary + "--\r\n"; connection.setDoOutput(true); connection.getOutputStream().write(output.getBytes()); connection.connect(); } |
||
![]() |
![]() |
Svara |
|
|