post提交数据空格被编码成加号的解决办法

2016-03-03 13:32:00
admin
原创
4807
摘要:通过base64位传送图片
public class ImageStringToPath {
   //图片转化成base64字符串  
   public static String GetImageStr()   {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
       String imgFile = "E:\\IV.jpg";//待处理的图片  
       InputStream in = null;  
       byte[] data = null;  
       //读取图片字节数组  
       try{  
           in = new FileInputStream(imgFile);          
           data = new byte[in.available()];  
           in.read(data);  
           in.close();  
       }catch (IOException e){  
           e.printStackTrace();  
       }  
       //对字节数组Base64编码  
       BASE64Encoder encoder = new BASE64Encoder();  
       return encoder.encode(data);//返回Base64编码过的字节数组字符串  
   }  
   //base64字符串转化成图片  
   public static String  baseTOImage(String imgStr,String realPath)  {   //对字节数组字符串进行Base64解码并生成图片  
    String root="d:/opt/share/photos";
       if (imgStr == null) {//图像数据为空  
           return "上传的图片为空";  
       }
       imgStr = imgStr.replace(" ", "+");
       BASE64Decoder decoder = new BASE64Decoder();  
       try {   //Base64解码  
           byte[] b = decoder.decodeBuffer(imgStr);  
           for(int i=0;i<b.length;++i) {  
               if(b[i]<0)  {//调整异常数据  
                   b[i]+=256;  
               }  
           }  
           if (Integer.parseInt(String.valueOf(b.length / 1024)) > 10240) {
return "上传的图片过大,请您上传小于10M的图片";
}
           InputStream in = new ByteArrayInputStream(b);
           if(!FileType.markImageByIcon(in, root+"/"+realPath)){
            return "上传文件格式错误";
           }
           return "ok";  
       }catch (Exception e) {  
           return "图片转化异常";  
       }  
   }  
   public static void main(String[] args) {
    String strImg = GetImageStr();  
        System.out.println(strImg);
        baseTOImage(GetImageStr(), "a.jpg");

}

备注:如果通过post提交数据会出现问题,空格被编码成加号,于是传的参数明明是加号,获取的值却成了空格

发表评论
评论通过审核之后才会显示。
文章分类
联系方式
联系人: 郑州-小万
电话: 13803993919
Email: 1027060531@qq.com
QQ: 1027060531
网址: www.wanhejia.com