base64 编码图片传输

  |   1 评论   |   606 浏览

  1. 图片转换为base64编码
  Base64Util.encode(字节数组);
  1. 将base64解码为图片字节数组
  Base64Util.decode(字节数组);
  1. 完整解密并存储在服务器路径如下
	/**
	 * base64解码为图片
	 * @param gfile map格式Key为图片名称,值为base64图片编码
	 * */
	public static Map<String, String> saveFileByByte(JSONObject gfile) {
		File filePath = new File(Global.FILE_SAVE_PATH);//
		Map<String, String> fileMap = new HashMap<String, String>();
		if (!filePath.exists()) {
			filePath.mkdirs();
		}
		Iterator<String> it = gfile.keys();
		while (it.hasNext()) {
			String name = it.next();// 图片名称
			String newFileName = IdUtil.uuid();// 存储到服务器上的名称
			// 获取文件后缀名称
			String filetype = name.substring(name.lastIndexOf(".") + 1);
			newFileName = newFileName + "." + filetype;//新文件名称加后缀
			String tmpFile = Global.FILE_SAVE_PATH + newFileName;
			fileMap.put(name, tmpFile);// 返回图片名称及服务器上的完整路径
			// 读取图片字节数组
			InputStream is = null;
			OutputStream out = null;
			try {
				String obj = gfile.getString(name);	// base64图片编码
                    	// xml转换成string时会将+替换为空格,所以此处再将空格替换为+即可			
                           obj = obj.replaceAll(" ", "+");	
				byte[] bs = Base64Util.decode(obj);
				out = new FileOutputStream(tmpFile);
				is = new ByteArrayInputStream(bs);
				byte[] buff = new byte[1024];
				int len = 0;
				while ((len = is.read(buff)) != -1) {
					out.write(buff, 0, len);
				}
				is.close();
				out.close();
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				try {
					is.close(); // 无论是否异常必须关闭流操作
					out.close();
				} catch (IOException e) {
					is = null;
					out = null;
					e.printStackTrace();
				}
			}
		}
		return fileMap;
	}

base64工具类下载
Base64Utiljava

评论

  • yvejohn 回复»

    @YxxXlv0COaxl
    @Eddie
    感谢两位,查了一下base64确实只是编码方式,是我理解错误了

  • YxxXlv0COaxl 回复»

    base64只是编码方式
    不是加密方式
    虽然都懂,但是确实要区分清楚,说正确

  • Eddie 回复»

    base64不是加密的吧。

发表评论