通过winform上传图片到java服务器,使用C#的webclient.uploadFile上传图片,但不知为什么在java服务器端(struts2)的action中获取不到上传的文件,研究了半天也没结果,所以尝试使用Base64将图片转成字符串,然后http传给java服务器。
按理Base64标准是统一的,C#转Base64字符串再使用Java把字符串解码成图片,所以上百度搜了半天代码,
C#代码:
Bitmap bmp = new Bitmap(文件路径);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] fileBytes = new byte[ms.Length];
ms.Position = 0;
ms.Read(fileBytes, 0, (int)ms.Length);
ms.Close();
//http post给后台
Java代码:
String imgFile = request.getParameter("imgFile");
BASE64Decoder decoder = new BASE64Decoder();
byte[] imgBytes = decoder.decodeBuffer(imgFile);
FileOutputStream fos = new FileOutputStream(img);
fos.write(imgBytes);
fos.close();
这样试了几次不行,解码的